adChar和adParamInput无法识别

时间:2013-10-03 13:06:17

标签: vbscript

我正在进行oracle迁移的SQL。我必须改变很多旧的vbscript代码。 这是我与Oracle一起使用的新代码的示例。 这是造成问题的代码,

cmd.CreateParameter("v_CdEnt", adChar, adParamInput, 4, Request("ENTIDADE"))

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

cmd.CreateParameter("v_CdEnt", 129 , 1 , 4, Request("ENTIDADE"))

使用常量的值,一切正常。 任何想法??

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

1 个答案:

答案 0 :(得分:6)

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

对于ad *常数,您可以:

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