请问:如下ACCESS数据库连接代码段错误在那里?执行到OPEN()就出错

may_meng 2002-07-26 01:29:10
请问:如下ACCESS数据库连接代码段错误在那里?执行到OPEN()就出错

<!--#include file="../Connections/main.asp" -->
<%
colname = "title"
colvalue = "%"
colname = request.querystring("colname")
colvalue = request.querystring("colvalue")
%>
<%
set Recordset1 = Server.CreateObject("ADODB.Recordset")
Recordset1.ActiveConnection = MM_island_STRING
Recordset1.Source = "SELECT * FROM forum WHERE "& colname &" LIKE "& colvalue &" ORDER BY time DESC"
Recordset1.CursorType = 0
Recordset1.CursorLocation = 2
Recordset1.LockType = 3
Recordset1.Open()
Recordset1_numRows = 0
%>
我是想通过这个代码实现动态SQL查询,
意思是按那列查询也由用户选择,但是当我把列做参数传入时就发生问题
请有做过这方面应用的给我指点
谢谢
...全文
2 点赞 收藏 5
写回复
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
foglee 2002-07-26
SQL语句中的变量如果不是数值型的话要加上一对单引号。如"& colname &"写成:'"& colname &"'
还有,like后面应该写成 '%"& colvalue &"%',其中的两个%可以都写,也可以只写其中任何一个,不过含义不一样。两个都写,表示字符串的任意位置包含colvalue;只前面写一个,表示字符串末尾包含colvalue,colvalue前面为任意字符;只后面写一个,表示字符串开头包含colvalue,colvalue后面为任意字符。
还有,time是保留字,不能在数据库中用做字段名称,换一个,比如time_now
最后,你这连接数据库的方式也太复杂了,为什么不用简单的呢?
回复
qiushuiwuhen 2002-07-26
time
=>
[time]
回复
JavaCoffee 2002-07-26
将你代码中的
Recordset1.Source = "SELECT * FROM forum WHERE "& colname &" LIKE "& colvalue &" ORDER BY time DESC"
改为下面的试试:
Recordset1.Source = "SELECT * FROM forum WHERE "& colname &" LIKE '%"& colvalue &"%' ORDER BY time DESC"

我感觉是你的语句写法有问题。
回复
Fengxiubing2000 2002-07-26
"SELECT * FROM forum WHERE "& colname &" LIKE "& colvalue &" ORDER BY time DESC"
是什么句子?"forum"是什么?
首先,你要保证你的数据库链接有没有错;其次,你可以把你的select句子放到
Access中运行下,看有没有错.
回复
may_meng 2002-07-26
数值型也加引号可以么?
我现在在COLNAME和COLVALUE上都加了引号,也在COLVALUE两边加了%
语法检测是通过了

但是用这个语句查询得不到任何记录
回复
发动态
发帖子
ASP
创建于2007-09-28

2.8w+

社区成员

ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
申请成为版主
社区公告
暂无公告