asp的SQL语句该怎样写?(50分)

  • 主题发起人 主题发起人 fireboy
  • 开始时间 开始时间
F

fireboy

Unregistered / Unconfirmed
GUEST, unregistred user!
我的代码如下:
<%@ language="vbscript" %>
<%
set zscn=server.createobject("ADODB.Connection")
zscn.open "myacc","",""
set rs=server.createobject("ADODB.Recordset")
rs=zscn.Execute("select password from schools where code ="
&request.form("code"))
......
运行时,报错:
Microsoft OLE DB Provider for ODBC Drivers 错误 '80040e14'

[Microsoft][ODBC Microsoft Access Driver] Syntax error
(missing operator) in query expression 'code ='.
这到底是怎莫回事?另外,带参数的insert语句应该怎样写,为什莫一直报错,就是加不进数据去?
我用的是access数据库.
 

》》set zscn=server.createobject("ADODB.Connection")
》》zscn.open "myacc","",""
》》set rs=server.createobject("ADODB.Recordset")
好象没错
》》rs=zscn.Execute("select password from schools where code ="
》》 &request.form("code"))
-->
rs.open zscn,"Select select password from schools where code ="&request.form("code")
好象是这样的,
后面还有参数,查查asp的书吧
 

rs=zscn.Execute("select password from schools where code ="
&request.form("code"))
中code 如果是字符型应:
rs=zscn.Execute("select password from schools where code ='"
&request.form("code")&"'")
另外您的mycc一定对吗?
还有
zscn.open "myacc","",""
中,可直接写为
mycc="dsn=***;database=****;uid=*****;pwd=****"
zscn.open myacc
我用ORACLE行,
再检查一下ODBC对吗?

 
前面的问题已经很清楚了
关于INSERT 你可以这样写呀
INSERT INTO TABLENAME (FIELDNAME1,FIELDNAME2,......)
VALUES (VALUE1,VALUE2.....)
 
你在code=后面加上":"看看﹐
<%
set zscn=server.createobject("ADODB.Connection")
zscn.open "myacc","",""
set rs=server.createobject("ADODB.Recordset")
rs=zscn.Execute("select password from schools where code =:"
&request.form("code"))
......
 
我用:rs.open="select password from schools where mycode='201'",zscn,adOpenKeysetcode 后加':'不行:Selected collating sequence not supported by the operating system.
报错:语句未结束
rs.open="select password from schools where mycode='201'",zscn,adOpenKeyset
---------------------------------------------------------^

code 后加'也不行:Selected collating sequence not supported by the operating system.
insert 也不行:Selected collating sequence not supported by the operating system.
到底是哪里出的错误?

我用的是pws+access,语法是否与oracle不同?或有没有其他问题?

 
有没有人能给个回答?
 
还是pws需要某些设置?
 
我同意xfl的方法,
request.form("code")的返回值應該只是字符型的.
寫asp時,好像只有'"&request("code")&"'或'"&request("code")&"'能在SQL里執行.
另外,
此時的myacc好像應該是system DSN.
請你查查看.
 
谁能贴一个一定能执行的asp,我觉得是不是有别的问题.
我的myacc是system dsn
大家说的我都试过了,数据也换过了,但还是同样的错误
谢谢大家了
 
像这样的代码,我用过多次,不是什么很特别的SQL语句,就不会是数据库类型的问题,
所以不会是Oracle 或是 SQL Server等等问题。
另外,PWS如果正常运行,应该不会有问题。
由于具体情况不是很清楚,我建议你应该这样调试:
先用真正的值代替代“&request.form("code") ”这句,这个 code 值最
好是你数据库有的。
IF 错误提示没变 then
Begin
这就是ODBC的问题,建议用其他方式来调用ACCESS数据库,如
set zscn=server.createobject("ADODB.Connection")
zscn.open "driver={Microsoft Access Driver (*.mdb)};dbq="...(数据库实际路径)
set rs=server.createobject("ADODB.Recordset")
......
End
ELSE
Begin
就是引用 request.form("code") 格式有误,这就应该仔细推敲一下,你的
格式了,各种引号的交叉使用是ASP最易出错的地方。
End;

GOOD LUCK.
 
正确写法:
rs.open 连接字符串,连接对象
rs.open "Select password from schools where code ="&request.form("code"),zscn
你能肯定request.form("code")能够获取数据吗?如果request.form("code")=''的话:
rs.open "Select password from schools where code =",zscn
此时就会返回code丢失操作数的错误。
 
看我的:
要就是
rs=zscn.Execute("select password from schools where code =request.form(‘"+code+"’))
要就是
rs=zscn.Execute("select password from schools where code =request.form(‘"&code&"’))
 
sql="select password from schools where code ="&request.form("code")
response.write sql '这一句是关键,你先不要执行下面那句,把你的sql打出来看看,
'究竟有什么问题没有,你可以在sql monitor里面先试一下。
set rs=zscn.Execute(sql) '这样建立recordset对象比较简单,也不太会错。
 
非常感谢大家,可能是我的odbc出了问题.
 
后退
顶部