Дата публикации: 05.01.2003
Запись массивов (VB)
'WRITE ARRAY SAMPLES
'
'CREATE TABLE VARCHAR_ARRAY
'(
' A1_2 VARCHAR(16) [-1:2]
');
Sub sample6()
Dim cn As New ADODB.Connection
'Connect to test database (auto_commit=false)
cn.Open "file name=h:\database\test_db5.ibp"
cn.BeginTrans
'The command with named parameters
Dim cmd1 As New ADODB.Command
cmd1.ActiveConnection = cn
' The command with unnamed parameters
Dim cmd2 As New ADODB.Command
cmd2.ActiveConnection = cn
' 1. Explicit definition of table and column names
cmd1.CommandText = "insert into varchar_array (a1_2)" & Chr(13) & _
"values(:a1_2.varchar_array.a1_2)"
' Information of parameters retrive from provider
Dim array1(-1 To 2) As String
Dim x As Long
For x = LBound(array1) To UBound(array1)
array1(x) = CStr(x) & ":" & CStr(Time)
Next x
cmd1("a1_2") = array1
cmd1.Execute
'2. work with unnamed parameters
cmd2.CommandText = "insert into varchar_array (a1_2)" & Chr(13) & _
"values(?.varchar_array.a1_2)"
' Use explicit parameter definition
cmd2.Parameters.Append cmd2.CreateParameter(, adArray + adBSTR, adParamInput)
cmd2(0) = array1
cmd2.Execute
'3. write of array subset
Dim sub_array(0 To 1) As String
sub_array(0) = "sub array [0]"
sub_array(1) = "sub array [1]"
cmd2(0) = sub_array
cmd2.Execute
'4. message of incorrect dimension
Dim bad_array(1 To 2, 1 To 2) As String
bad_array(1, 1) = "1:1"
bad_array(1, 2) = "1:2"
bad_array(2, 1) = "2:1"
bad_array(2, 2) = "2:2"
cmd1("a1_2") = bad_array
'ERROR TEXT: IB-Dim:1 SA-Dim:2
cmd1.Execute
'5. incorrect range
Dim bad_array2(-5 To 5) As String
For x = LBound(bad_array2) To UBound(bad_array2)
bad_array2(x) = CStr(x) & ":" & CStr(Time)
Next x
cmd2(0) = bad_array2
'ERROR TEXT: DIM:1 IB:[-1..2] SA:[-5..5]
cmd2.Execute
'commit all changes
cn.CommitTrans
End Sub 'samples6
