Publish date: 2003-01-05
Arrays writing (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