adChar和adParamInput无法识别

Rui*_*ins 1 vbscript

我正在做一个sql到oracle的迁移.我必须改变很多旧的vbscript代码.这是我与Oracle一起使用的新代码的示例.这是造成问题的一点代码,

cmd.CreateParameter("v_CdEnt", adChar, adParamInput, 4, Request("ENTIDADE"))
Run Code Online (Sandbox Code Playgroud)

出于某种原因,我因adChar和adParamInput而出错.如果我使用

cmd.CreateParameter("v_CdEnt", 129 , 1 , 4, Request("ENTIDADE"))
Run Code Online (Sandbox Code Playgroud)

使用常量的值,一切正常.有任何想法吗??

Set cmd = Server.CreateObject("ADODB.Command")
                            Set oRS = Server.CreateObject("ADODB.Recordset")

                            With cmd
                                .ActiveConnection   = GlobaloConn
                                .CommandText        = "GetBalcoes"
                                .CommandType        = 4 'adCmdStoredProc
                                .Parameters.Append cmd.CreateParameter("v_CdEnt", adChar, adParamInput, 4, Request("ENTIDADE"))
                            End With

                            Set oRS = cmd.Execute  

                            do while not oRS.Eof 
                                If oRS.Fields(1) = Request("BALCAO") then
                                    %><option value="<%=oRS.Fields(1)%>" selected="selected"><%=left(oRS.Fields(2), 30)  & "-" & oRS.Fields(1)%></option>
                                    <%
                                Else
                                    %><option value="<%=oRS.Fields(1)%>"><%=left(oRS.Fields(2), 30)  & "-" & oRS.Fields(1)%></option>
                                    <%
                                End If
                                oRS.MoveNext
                            loop

                            oRS.Close

                            Set oRS  = nothing
                            Set cmd  = nothing
Run Code Online (Sandbox Code Playgroud)

Ekk*_*ner 6

VBScript不了解ADODB的ad*常量.顺便说一句,同样适用于Excel或Word的xls*或wd*常量.

对于ad*常量,您可以:

  1. 只使用数字(带注释;例如.CommandType = 4 'adCmdStoredProc)
  2. 自己定义(例如Const adCmdStoredProc = 4)
  3. 包含(adovbs.inc的编辑版本)