我有一个参数化查询,它给出了
“ORA-01008:并非所有变量都绑定”错误。
Dim Conn
Dim Cmd
Dim RS
Dim strID
Dim param
strID = Request.QueryString("id")
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open strConnect
Set Cmd = Server.CreateObject("ADODB.Command")
Cmd.CommandText = "SELECT column_name FROM table WHERE (id = :id)"
Set param = Cmd.CreateParameter("id", adVarChar , adParamInput ,50 , strID)
Cmd.Parameters.Append param
Cmd.CommandType = adCmdText
Set Cmd.ActiveConnection = Conn
Set RS = Cmd.Execute()
我正在尝试以多种方式修改语法,然后是
ORA-00936:缺少表达
请帮我摆脱这个。为了您的信息,连接没有问题,因为我能够连接普通查询。
答案 0 :(得分:0)
要检查的一些事项:
1)尝试对strID的值进行硬编码,而不是:
strID = Request.QueryString("id")
试
strID = 100
2)仔细检查您的列定义并确保从varchar(50)字段中选择
3)确保您的页面上引用了adovbs.inc以获取ADO常量定义
答案 1 :(得分:0)
谢谢@Lankymart,幸运的是我得到了解决方案,如下所示。这对我来说很好,对于延迟发布答案感到抱歉,我的问题在2小时前解决了。
Dim Conn
Dim Cmd
Dim RS
Dim strID
Dim param
strID = Request.QueryString("id")
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open strConnect
Set Cmd = Server.CreateObject("ADODB.Command")
With Cmd
.CommandText = "SELECT column_name FROM table WHERE id = ?"
.Parameters.Append .CreateParameter(,200, 1 ,50 ,strID)
Set .ActiveConnection = Conn
End With
Set RS = Cmd.Execute()