English version Russian version

'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


Назад Вперед