Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations wOOdy-Soft on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

What is the VB.NET equivalent for Array() command?

Status
Not open for further replies.

aldovalerio

Programmer
Mar 29, 2001
36
CH
I'm a VB6 developer, and I'm trying to learn VB.NET (perhaps not the best way) by converting some code from VB6.

I'm having trouble finding the equivalent for the VB6
Array() command.

This is my VB6 code:

function call:
Set rst = ADO_RunSPReturnRSParm ( _
strDBConnect, "sel_facts", lngNumberOfFactRows, _
Array(adParamInput, adInteger, 10, txtMaxNbrRows), _
Array(adParamInput, adVarChar, 100, "22.5"), _
Array(adParamInput, adVarChar, 15, "AP13,AP14"), _
Array(adParamOutput, adInteger, 10) _
)


Public Function ADO_RunSPReturnRSParm( _
ByVal strDBConnectString As String, _
ByVal strSPName As String, _
ByRef lngNumberOfRows As Long, _
ParamArray params() As Variant) As Object
....some code...
ADO_Collect_Params cmd, params
End Function

Private Sub ADO_Collect_Params( _
ByRef cmd As ADODB.Command, _
ParamArray argparams() As Variant)

Dim params As Variant, i As Integer, v As Variant

params = argparams(0)

For i = LBound(params) To UBound(params)
If params(i)(1) = adParamOutput Then
Call ADO_Create_Parm(cmd, adParamOutput, _
params(i)(2), params(i)(3))
Else
Call ADO_Create_Parm(cmd, adParamInput, _
params(i)(2), params(i)(3), params(i)(4))
End If
Next i
End Sub


I've rewritten (helped by the VB.NET upgrade wizard) the above as:

rst = ADO_RunSPReturnRSParm( _
strDBConnect, "sel_facts", lngNumberOfFactRows, _
New Object() {New Object() {ADODB.ParameterDirectionEnum.adParamInput, ADODB.DataTypeEnum.adInteger, 10, txtMaxNbrRows}}, _
New Object() {New Object() {ADODB.ParameterDirectionEnum.adParamInput, ADODB.DataTypeEnum.adVarChar, 100, "22.5"}}, _
New Object() {New Object() {ADODB.ParameterDirectionEnum.adParamInput, ADODB.DataTypeEnum.adVarChar, 15, "AP13,AP14"}}, _
New Object() {New Object() {ADODB.ParameterDirectionEnum.adParamOutput, ADODB.DataTypeEnum.adInteger, 10}})

Public Function ADO_RunSPReturnRSParm( _
ByVal strDBConnectString As String, _
ByVal strSPName As String, _
ByRef lngNumberOfRows As Integer, _
ByVal ParamArray params() As Object) As Object
...some code...
ADO_Collect_Params(cmd, New Object() {params})
End Function

Private Sub ADO_Collect_Params( _
ByRef cmd As ADODB.Command, _
ByVal ParamArray argparams() As Object)

Dim params As Object
Dim i As Short

params = argparams(0)
For i = LBound(params) To UBound(params)
If params(i)(0) = ADODB.ParameterDirectionEnum.adParamOutput Then
Call ADO_Create_Parm(cmd, _
ADODB.ParameterDirectionEnum.adParamOutput, _
params(i)(1), params(i)(2))
Else
Call ADO_Create_Parm(cmd, _
ADODB.ParameterDirectionEnum.adParamInput, _
params(i)(1), params(i)(2), params(i)(3))
End If
Next i
End Sub

I'm getting the following runtime error on this line:
"If params(i)(0) = ADODB.ParameterDirectionEnum.adParamOutput Then".

Additional information: Operator is not valid for type 'Object()' and type 'ParameterDirectionEnum'.
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top