asp dsn mysql 连接失败_ASP连接数据库报错的几种原因

ASP连接数据库的方法一般有两种,分别是使用OLE DB字符串建立和使用ODBC字符串建立。一般和ASP配套的数据库就是Access和SQLServer,小型网站尤其以Access数据库为多。很多客户在自己编程的过程中,对数据库连接代码一直搞不清楚如何来写,造成程序运行后提示各种各样的错误。本篇文章就帮助大家解决ASP连接数据库的各种问题。

81ac36b3-20b1-4945-a3fb-c7042bb7ee56.png

一个典型的错误是“不能打开注册表关键字”,具体出错信息如下:

Microsoft OLE DB Provider for ODBC Drivers 错误 '80004005'

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

正确的连接数据库代码应该怎么写呢?下面给出示例代码:

1、ASP连接SQLServer数据库

Set conn=Server.CreateObject("ADODB.Connection")

connstr="Provider=SQLOLEDB;Server=local;UID=sa;PWD=123;DataBase=mydb"

conn.Open connstr

其中Server是SQLServer数据库的地址,如果和空间在一台服务器就用local,不在一台服务器就用IP地址。UID是数据库用户名,PWD是数据库密码,DataBase是数据库名。

2、ASP连接Access数据库

Set conn=Server.CreateObject("ADODB.Connection")

'使用OLE DB字符串建立

connstr="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=指向mdb的物理路径"

'使用ODBC字符串建立

connstr="DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=指向mdb的物理路径"

conn.Open connstr

两种connstr字符串任选其一,指向mdb的物理路径要用Server.Mappath()函数。比如数据库文件的位置是/db/mydb.mdb,那么就可以写成Server.Mappath("/db/mydb.mdb")。总之,这个函数的功能是把相对路径转换成绝对路径。

数据库连接代码报错的原因有很多,客户可以从以下几个方面来分析。

1、数据库连接代码是否正确。如果是SQLServer数据库,仔细检查数据库主机、数据库用户名、数据库密码以及数据库名这四个关键参数是否正确。如果是Access数据库,则检查是否使用了数据库的绝对路径,必要的时候把connstr连接字符串用Response.Write输出看一下是否符合ASP语法。

2、Access数据库是否有读写权限。程序运行过程中,不可避免的要读写Access数据库。比如用户注册,添加新闻,删除消息,都是对数据库的读写,所以整个网站的权限一定要设置好。现在大部分空间商默认都是开通读写权限的,除非您不小心在空间管理面板中关闭了写入权限。

3、还有一种情况,比较难发现。上次有一个客户出现了这种情况,我们也是检查了很久才找到原因,原来是空间满了。在排查了各种可能的原因之后,仍然报数据库连接错误,则很有可能是空间已经满了。因为大部分虚拟主机都是采用磁盘配额,对空间的容量有严格限制。如果空间已经满了,不仅通过FTP无法上传任何文件,数据库连接的时候也同样会报错。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值