''' <summary>
''' 给oracle命令的参数赋值
''' </summary>
''' <param name="cmd"></param>
''' <param name="inputVals"></param>
''' 给oracle命令的参数赋值
''' </summary>
''' <param name="cmd"></param>
''' <param name="inputVals"></param>
Public Sub SetCommandParameters(ByRef cmd As ADODB.Command, ByVal inputVals() As Object)
Dim ParamNmCnt = 0 ' 输入value 的 数量,可以为 0
If IsNothing(inputVals) = False Then
ParamNmCnt = inputVals.Count
End If
If IsNothing(inputVals) = False Then
ParamNmCnt = inputVals.Count
End If
If ParamNmCnt > 0 Then ' 如果 输入value 的 数量 大于 0
For i = 0 To inputVals.Count - 1 ' 对各个value
Dim ParamFldSize = 40
Dim oParam As ADODB.Parameter = New ADODB.Parameter
Dim ParamFldSize = 40
Dim oParam As ADODB.Parameter = New ADODB.Parameter
oParam = cmd.CreateParameter
Select Case VarType(inputVals(i))
Case VariantType.Integer
oParam.Type = ADODB.DataTypeEnum.adInteger
Case VariantType.Long
oParam.Type = ADODB.DataTypeEnum.adLongVarChar
Case VariantType.Double
oParam.Type = ADODB.DataTypeEnum.adNumeric
Case VariantType.Date
oParam.Type = ADODB.DataTypeEnum.adDBDate
Case VariantType.String
ParamFldSize = IIf(inputVals(i) = STRING_EMPTY, 40, Len(inputVals(i)))
oParam.Type = ADODB.DataTypeEnum.adLongVarChar
End Select
oParam.Size = ParamFldSize
oParam.Value = inputVals(i)
Case VariantType.Integer
oParam.Type = ADODB.DataTypeEnum.adInteger
Case VariantType.Long
oParam.Type = ADODB.DataTypeEnum.adLongVarChar
Case VariantType.Double
oParam.Type = ADODB.DataTypeEnum.adNumeric
Case VariantType.Date
oParam.Type = ADODB.DataTypeEnum.adDBDate
Case VariantType.String
ParamFldSize = IIf(inputVals(i) = STRING_EMPTY, 40, Len(inputVals(i)))
oParam.Type = ADODB.DataTypeEnum.adLongVarChar
End Select
oParam.Size = ParamFldSize
oParam.Value = inputVals(i)
cmd.Parameters.Append(oParam)
Next
End If
End Sub
’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’
‘ 下面是具体应用
Dim cmd As New ADODB.Command
Dim rs As ADODB.Recordset = Nothing
cmd.CommandType = CommandType.Text
Dim rs As ADODB.Recordset = Nothing
cmd.CommandType = CommandType.Text
cmd.ActiveConnection = pConn
cmd.CommandText = "select * from AT2S_INFO_NEW where branch_code = ? and serial_no = ?"
cmd.CommandText = "select * from AT2S_INFO_NEW where branch_code = ? and serial_no = ?"
SetCommandParameters(cmd, {85, 1234})
rs = cmd.Execute
***
***
rs.Close()