ASP中数据库调用中常见错误的现象和解决
程序员文章站
2022-03-26 09:28:37
下面是虚机维护中,经常碰到的一些asp程序中的调用的错误,现收集整理如下:不能打开注册表关键字(8007000e) microsoft ole db provider for odbc drive...
下面是虚机维护中,经常碰到的一些asp程序中的调用的错误,现收集整理如下:
不能打开注册表关键字(8007000e)
microsoft ole db provider for odbc drivers 错误 8007000e
[microsoft][odbc microsoft access driver]常见错误 不能打开注册表关键字 temporary
(volatile) jet dsn for process 0x11b4 thread 0x1a4c dbc 0x9d34354 jet。
1.打开数据库时写法不对,标准的access数据库调用写法:
"driver={microsoft access driver (*.mdb)};dbq=" & server.mappath("db.mdb")
2. 正在上传数据库文件。
――――――――――――――――――――――――――――――――――――
一般性网络错误。请检查网络文档(80004005)
microsoft ole db provider for odbc drivers 错误 80004005 [microsoft][odbc sql server driver][tcp/ip sockets]一般性网络错误。请检查网络文档。
1.数据库连接书写不正确,可能数据库名、服务器名错误。
2.数据库服务器重启中。
――――――――――――――――――――――――――――――――――――
不能使用 ;文件已在使用中(80004005)
microsoft jet database engine 错误 80004005
不能使用 ;文件已在使用中。
1.文件可能正被占用:上传、压缩、打包。
2.可能程序代码中形成了嵌套包含,重复包含的数据库调用文件。
――――――――――――――――――――――――――――――――――――
不能更新。数据库或对象为只读/操作必须使用一个可更新的查询 (80004005)
microsoft ole db provider for odbc drivers 错误 80004005
[microsoft][odbc microsoft access driver] 操作必须使用一个可更新的查询。
microsoft ole db provider for odbc drivers 错误 80004005 [microsoft][odbc microsoft access driver] 不能更新。数据库或对象为只读。
1.数据库文件权限不够。
2.文件占用空间达到磁盘限额上限。
当提示“操作必须使用一个可更新的查询”时有几个主要的错误原因:这个错误发生在当你的程序试图执行更新数据库或其它类似操作时。这是因为ado由于以下的几个原因而不能够写数据库造成的。
1.最普遍的原因是匿名用户帐号(iusr_machine)对该数据库文件没有写权限。要解决这个问题,在管理器中调整数据库文件的属性,让匿名用户有正确的权限。当使用access数据库时,不仅要给文件写的权限,还要给该目录写的权限,因为jet需要在该目录建立一个.ldb文件。
2.第二个原因是数据库没有使用正确的模式打开。应该使用下面的方法打开。
sql = "update products set unitprice = 2;"
set conn = server.createobject("adodb.connection")
conn.mode = 3 3 = admodereadwrite
conn.open "mydsn"
conn.execute(sql)
conn.close
注意默认的mode是设置0(admodeunknown),它是允许更新的。
3.还有可能是在odbc管理器中将该dsn的只读选项选中。
4.你是在同时更新两个表中的字段,也会出现这个错误信息,解决办法是分开来更新这两个表中各自字段。
5.当你使用了一个从低版本中(如access2.0,access7.0)载入到高版本(access 2000)中的查询时,在执行这个查询是会出现该错误。
――――――――――――――――――――――――――――――――――――
未发现数据源名称并且未指定默认驱动程序(80004005)
microsoft ole db provider for odbc drivers 错误 80004005
[microsoft][odbc 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序
1.使用了odbc连接数据库,服务器上没有配置odbc数据库,改用oledb的标准调用方式:
"driver={sql server};database=dbname;server=srv;uid=user;pwd=pd"可以解决。
不能打开注册表关键字(8007000e)
microsoft ole db provider for odbc drivers 错误 8007000e
[microsoft][odbc microsoft access driver]常见错误 不能打开注册表关键字 temporary
(volatile) jet dsn for process 0x11b4 thread 0x1a4c dbc 0x9d34354 jet。
1.打开数据库时写法不对,标准的access数据库调用写法:
"driver={microsoft access driver (*.mdb)};dbq=" & server.mappath("db.mdb")
2. 正在上传数据库文件。
――――――――――――――――――――――――――――――――――――
一般性网络错误。请检查网络文档(80004005)
microsoft ole db provider for odbc drivers 错误 80004005 [microsoft][odbc sql server driver][tcp/ip sockets]一般性网络错误。请检查网络文档。
1.数据库连接书写不正确,可能数据库名、服务器名错误。
2.数据库服务器重启中。
――――――――――――――――――――――――――――――――――――
不能使用 ;文件已在使用中(80004005)
microsoft jet database engine 错误 80004005
不能使用 ;文件已在使用中。
1.文件可能正被占用:上传、压缩、打包。
2.可能程序代码中形成了嵌套包含,重复包含的数据库调用文件。
――――――――――――――――――――――――――――――――――――
不能更新。数据库或对象为只读/操作必须使用一个可更新的查询 (80004005)
microsoft ole db provider for odbc drivers 错误 80004005
[microsoft][odbc microsoft access driver] 操作必须使用一个可更新的查询。
microsoft ole db provider for odbc drivers 错误 80004005 [microsoft][odbc microsoft access driver] 不能更新。数据库或对象为只读。
1.数据库文件权限不够。
2.文件占用空间达到磁盘限额上限。
当提示“操作必须使用一个可更新的查询”时有几个主要的错误原因:这个错误发生在当你的程序试图执行更新数据库或其它类似操作时。这是因为ado由于以下的几个原因而不能够写数据库造成的。
1.最普遍的原因是匿名用户帐号(iusr_machine)对该数据库文件没有写权限。要解决这个问题,在管理器中调整数据库文件的属性,让匿名用户有正确的权限。当使用access数据库时,不仅要给文件写的权限,还要给该目录写的权限,因为jet需要在该目录建立一个.ldb文件。
2.第二个原因是数据库没有使用正确的模式打开。应该使用下面的方法打开。
sql = "update products set unitprice = 2;"
set conn = server.createobject("adodb.connection")
conn.mode = 3 3 = admodereadwrite
conn.open "mydsn"
conn.execute(sql)
conn.close
注意默认的mode是设置0(admodeunknown),它是允许更新的。
3.还有可能是在odbc管理器中将该dsn的只读选项选中。
4.你是在同时更新两个表中的字段,也会出现这个错误信息,解决办法是分开来更新这两个表中各自字段。
5.当你使用了一个从低版本中(如access2.0,access7.0)载入到高版本(access 2000)中的查询时,在执行这个查询是会出现该错误。
――――――――――――――――――――――――――――――――――――
未发现数据源名称并且未指定默认驱动程序(80004005)
microsoft ole db provider for odbc drivers 错误 80004005
[microsoft][odbc 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序
1.使用了odbc连接数据库,服务器上没有配置odbc数据库,改用oledb的标准调用方式:
"driver={sql server};database=dbname;server=srv;uid=user;pwd=pd"可以解决。