在vbScript引用oracledB中的参数化查询



我有一个给出的参数化查询

" 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:缺少表达式

请帮助我摆脱困境。对于您的信息,连接没有问题,因为我能够与普通查询连接。

需要检查的几件事:

1)尝试对Strid的值进行硬编码,因此请代替:

strID = Request.QueryString("id")

尝试

strID = 100

2)仔细检查您的列定义,并确保您从Varchar(50)字段中选择

3)确保您在ADO常数定义的页面上引用了adovbs。

谢谢@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()

最新更新