1

我正在执行从 sql 到 oracle 的迁移。我必须更改很多旧的 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
4

1 回答 1

6

VBScript 不知道 ADODB 的 ad* 常量。顺便说一句,Excel 或 Word 的 xls* 或 wd* 常量也是如此。

对于 ad* 常量,您可以:

  1. 只使用数字(带注释;例如.CommandType = 4 'adCmdStoredProc
  2. 自己定义它们(例如Const adCmdStoredProc = 4
  3. 包括(经过编辑的)adovbs.inc
于 2013-10-03T14:43:15.773 回答