标题:[求助]数据库连接问题绝对经典!
只看楼主
wolfcool
Rank: 1
等 级:新手上路
帖 子:102
专家分:0
注 册:2006-12-9
 问题点数:0 回复次数:8 
[求助]数据库连接问题绝对经典!
Microsoft OLE DB Provider for ODBC Drivers 错误 '80004005'

[Microsoft][ODBC Microsoft Access Driver]常见错误 不能打开注册表关键字 'Temporary (volatile) Jet DSN for process 0x94c Thread 0x1a6c DBC 0x12763b54 Jet'。

D:\WEB\D26DA89C5D\LPSRBNR3B9DC1A5\ADMIN\../Connections/conn.asp,行 4

这是网页上传后出现的错误,只是在进入后台时才出现此错误,前台页面可以正常显示(后台页面在另外一个文件夹里)

在本地机子上也出现这样的错误,没有上传前我以为是我的机子问题,就想上传后应该不会出现这样的问题吧.可是还是出现了
在本地机上用SQL数据库不会出现此问题,由于小弟的空间不支持SQl所以只能用access.补充一下数据库的读,写权利都是开放的.望各位大侠指点一下谢谢了

搜索更多相关主题的帖子: 数据库 Microsoft size 经典 
2007-04-29 03:22
阳光白雪
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:39
帖 子:2220
专家分:0
注 册:2005-11-18
得分:0 

换了目录后数据库和文件所在的相对路径就改变了

如果是独立站点,建议先取站点根目录的地址,再确定数据库地址

例如:你的数据库位于 网站根目录下的 database 文件夹下的 data.mdb ,可以这样确定数据库地址:

Server.MapPath("\") &"\database\data.mdb"

Server.MapPath("\") 返回的是站点根目录的绝对路径


专注于WEB前端交互平台开发:[url=http://blog./]blog.[/url](富客户端技术(RIA)交流平台)
2007-04-29 08:45
feeless
Rank: 2
等 级:新手上路
威 望:3
帖 子:310
专家分:0
注 册:2007-2-7
得分:0 
顶~~~~

DBTwin SQL SERVER 集群(容错、备份、负载均衡)QQ:69166070
2007-04-29 10:51
wolfcool
Rank: 1
等 级:新手上路
帖 子:102
专家分:0
注 册:2006-12-9
得分:0 

我用的是相对路径,我是这样写的Server.MapPath("\database\data.mdb") 这样写应该是没有错的
我改成了二楼写的那样,首先的时候可以没有出错,可是我把数据库的连接改成sql数据库后,又改回来就不行了,连前台页面也进不去

2007-04-29 13:13
lq7350684
Rank: 6Rank: 6
等 级:贵宾
威 望:20
帖 子:5089
专家分:98
注 册:2006-11-6
得分:0 

access跟sql的连接方法不一样的.

1. ASP与Access数据库连接:
<%
dim conn,mdbfile
mdbfile=server.mappath("数据库名称.mdb")
set conn=server.createobject("adodb.connection")
conn.open "driver={microsoft access driver (*.mdb)};uid=admin;pwd=数据库密码;dbq="&mdbfile
%>

2. ASP与SQL Server数据库连接:
<%
dim conn
set conn=server.createobject("ADODB.connection")
conn.open "PROVIDER=SQLOLEDB;DATA SOURCE=SQL服务器名称或IP地址;UID=sa;PWD=数据库密码;DATABASE=数据库名称"
%>
自己看
sql server的用户名必须写
密码看数据库有没有设置
数据库名称必须写
IP地址必须写

2007-04-29 13:18
wolfcool
Rank: 1
等 级:新手上路
帖 子:102
专家分:0
注 册:2006-12-9
得分:0 
我是用这样的代码撒,问题是一下可以一下不可以这才是问题所在
2007-04-29 13:35
wolfcool
Rank: 1
等 级:新手上路
帖 子:102
专家分:0
注 册:2006-12-9
得分:0 
斑竹你就贴个代码有什么用咯,二楼比你说的还详细
2007-04-29 13:36
lq7350684
Rank: 6Rank: 6
等 级:贵宾
威 望:20
帖 子:5089
专家分:98
注 册:2006-11-6
得分:0 

我是他学生
他比我牛啊
这都让你看出来了
2007-04-29 13:40
阳光白雪
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:39
帖 子:2220
专家分:0
注 册:2005-11-18
得分:0 
假如现在在D盘下有如下文件(夹)结构:
wwwroot
include
conn.asp
database
data.mdb
article
artilelist.asp
index.asp

如果conn.asp中取数据库中路径的写法为:Server.MapPath("database\data.mdb")
1、当你在 index.asp 中<!-- #include file="include/conn.asp" -->,得到的数据库的绝对地址为:
d:\wwwroot\database\data.mdb
因为 index.asp 所在的绝对路径为:d:\wwwroot\,Server.MapPath("database\data.mdb")取得以此为相对路径下的\database\data.mdb文件,这样在 index.asp 中取得的数据库路径正确,程序可以正常运行

2、当在 artilelist.asp 中<!-- #include file="../include/conn.asp" -->,得到的数据库的绝对地址为:
d:\wwwroot\article\database\data.mdb
因为 artilelist.asp 所在的绝对路径为:d:\wwwroot\article,Server.MapPath("database\data.mdb")就是返回以d:\wwwroot\article为相对路径的文件夹的 \database\data.mdb 文件,而 article 文件夹下并无此文件,程序自然不能正确执行


如果conn.asp中取数据库中路径的写法为:Server.MapPath("\")& "\database\data.mdb",就能避免这种情况:
首先通过Server.MapPath("\")取得的是你网站根目录的绝对地址,再以此地址为相对地址下的 "\database\data.mdb"文件,这样无论文件夹的层次怎么变化,返回的数据库路径始终是:
d:\wwwroot\database\data.mdb

另外:
如果在调试程序中出现数据库路径错误,建议用
response.write(取数据库路径的表达式)
如:response.write(Server.MapPath("\")& "\database\data.mdb")
看看输出的结果,自然就明白错在什么地方了!

[此贴子已经被作者于2007-4-29 15:41:33编辑过]


专注于WEB前端交互平台开发:[url=http://blog./]blog.[/url](富客户端技术(RIA)交流平台)
2007-04-29 15:25



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-135832-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.047962 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved