蓝森林首页 | 返回主页 | 本站地图 | 站内搜索 | 联系信箱 |
 您目前的位置:首页 > 自由软件 > 技术交流 > 应用编程


    

蓝森林 http://www.lslnet.com 2006年8月25日 8:28

[asp]还是数据库查询查询问题(和下面的不同)

当我查询数据库时,按编号查,或是按简介查询的时候都出现下面的错误:

变量或者类型不正确,或者不在可以接受的范围之内,要不就是与其他数据冲突。

何解??
下面是出问题的语句。。
在数据库里 编号是 数值 类型,简介是 备注 类型!
select * from info where auto_id="&request.form("key")  '这是查询编号的语句
用cint转换函数也不行!!(这个我试过了)
select * from info where content like '%"&request.form("key")&"%'
上面的语句是查询简介字段里的信息,,

recordset 我用的是
rs.open sql,conn,2,3  '这一行总是错误的,

但是要是按名称搜就好使,, (名称字段在数据库里是文本类型)
select * from info where name like '%"&request.form("key")&"%'


自动编号不能用like查询。

回版主,,我说的那个不是自动编号 是手动加上去的编号

select * from info where auto_id="&request.form("key")

一般出现:变量或者类型不正确,或者不在可以接受的范围之内,要不就是与其他数据冲突。

这种错误的有多少种情况啊??

ASP中数据库调用时常见错误的现象和解决

下面是经常碰到的一些ASP程序中的数据库调用的错误,现收集整理如下:
ADODB.Recordset 错误 '800a0bb9'

[b]变量或者类型不正确,或者不在可以接受的范围之内,要不就是与其他数据冲突。

产生错误可能原因:

1.这个错误多出现在类似语句处:“rs.Open sql,conn,1,1”,原因是数据库连接conn对象未打开。

――――――――――――――――――――――――――――――――――――
[/b]
不能打开注册表关键字(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. 正在上传数据库文件。


――――――――――――――――――――――――――――――――――――

参数不足,期待是 1 (80040e10)

Microsoft OLE DB Provider for ODBC Drivers 错误 '80040e10'

[Microsoft][ODBC Microsoft Access Driver] 参数不足,期待是 1。



产生错误可能原因:

1.打开数据的SQL查询语句WHERE后面条件子句有问题,一般是缺少逻辑比较符号或者是字段名不正确。

――――――――――――――――――――――――――――――――――――
一般性网络错误。请检查网络文档(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.文件占用空间达到磁盘限额上限。

――――――――――――――――――――――――――――――――――――

未发现数据源名称并且未指定默认驱动程序(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"可以解决



Provider 错误 '80004005'

――――――――――――――――――――――――――――――――――――

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

未指定的错误



产生错误可能原因:



1.从出现错误的页面名称来看,是连接数据库时出现的问题。最大的可能是无法连接数据库,和上面“一般性网络错误。。。”是同性质的问题。这时需要检查数据库服务器是否正常。这类错误一般出现在连接 MS SQLServer 数据库上。



ADODB.Recordset 错误 '800a0e7d'

――――――――――――――――――――――――――――――――――――

ADODB.Recordset 错误 '800a0e7d'

连接无法用于执行此操作。在此上下文中它可能已被关闭或无效。


产生错误可能原因:
1.在程序中使用了一个已经关闭或者是还没打开的数据库连接。




Server.CreateObject 失败
――――――――――――――――――――――――――――――――――――

服务器对象 错误 'ASP 0177 : 800401f3'

Server.CreateObject 失败

无效的 ProgID。 若要获取关于此消息的更多的信息,请访问 Microsoft 联机支持站点: http://www.microsoft.com/contentredirect.asp 。

产生错误可能原因:

1.该错误多数出现在创建组件时,说明程序使用的组件,服务器不支持,需要注册所用的组件。常见于各种使用了上传组件的ASP页面。

///////////////////////////////////////////////////////////////
asp出现了ADODB.Recordset 错误 '800a0e7d' :

连接无法用于执行此操作。在此上下文中它可能已被关闭或无效。

这个错误常见用了一个前面已经关闭的Recordset或者conn对象,或者是用Recordset的时候忘记打开数据库连接对象Conn。

“ADODB.Recordset 错误 '800a0e7d' :
连接无法用于执行此操作。在此上下文中它可能已被关闭或无效” 这个问题,主要是提示中的“连接”、“上下文”和“关闭”这三个关键词。肯定在程序的前面就有地方直接或者间接(包括<!--#include files=……-->等等)引用了预先声明过的定义数据库连接词conn,修改不同的引用就可以了!



第一得明确你是用哪种数据库,还要明确你那个字段是什么类型的,最后才看你的出错提示。

用SQL SERVER的数据库:
字段类型为:int/bigint/nvarchar/char/varchar这些,只要值有存在,且值与字段内的值是一样的,就不会报这种错,报了这种错,请先检查你收到的key值是什么,字符串还是什么?
比如你字段内的数据是数字,而你传了文本进去。

用ACCESS数据库:
这种数据库的查询语句对类型要求比SQL SERVER严格。
这种情况下你就要检查字段类型是什么类型,数字/自动编号这两种的,语句中查询的时候是不能带单引号的,也就是你那种写法正确,报错,请检查你的key值是什么,字符串还是什么?
若你的字段类型是文本型,那你写的时候就一定要带单引号,要不然你传的值是数字或者与字段内容一样的值都一样会报错。

上面大概列了常见的判断方法,你自己对照一下。

非常荣幸版主能回答这个问题,我去试一下,,
再次感谢5do8朋友。。




Copyright © 1999-2000 LSLNET.COM. All rights reserved. 蓝森林网站 版权所有。 E-mail : webmaster@lslnet.com