用户可以创建 ADODB.Recordset 对象并指定列信息,然后可以将数据插入到 Recordset 对象中。基本行集合 将插入的数据缓存。
下面的代码范例显示如何使用 RDSServer.DataFactory 对象定义 Recordset。也可以用 RDS.DataControl 对象进行同样的定义。
Sub RsDefineShape()
Dim vntRecordShape(3)
Dim vntField1Shape(3)
Dim vntField2Shape(3)
Dim vntField3Shape(3)
Dim vntField4Shape(3)
' 给每个字段指定名称、类型、大小和空属性。
vntField1Shape(0) = "Name" ' Column name.
vntField1Shape(1) = CInt(129) ' Column type.
vntField1Shape(2) = CInt(40) ' Column size.
vntField1Shape(3) = False ' Nullable?
vntField2Shape(0) = "Age"
vntField2Shape (1) = CInt(3)
vntField2Shape (2) = CInt(-1)
vntField2Shape (3) = True
vntField3Shape (0) = "DateOfBirth"
vntField3Shape (1) = CInt(7)
vntField3Shape (2) = CInt(-1)
vntField3Shape (3) = True
vntField4Shape (0) = "Balance"
vntField4Shape (1) = CInt(6)
vntField4Shape (2) = CInt(-1)
vntField4Shape (3) = True
' 将所有字段放入一个数组中。
vntRecordShape(0) = vntField1Shape
vntRecordShape(1) = vntField2Shape
vntRecordShape(2) = vntField3Shape
vntRecordShape(3) = vntField4Shape
' 使用 RDSServer.DataFactory 创建空记录集,
' 该记录集是一个变体型数组,其中
' 每个元素本身又是另一个变体型数组
' 一个变体型数组是记录集中的一列。
' 内部数组的元素是列的名称、类型、大小和空属性。
Dim NewRs
' 可以使用 RDS.DataControl 对象
' 代替 RDSServer.DataFactory 对象。
' 在这种情况下,如下代码将被设置为 Set NewRS。
' = ADC1.CreateRecordset(vntRecordShape)
Set NewRS = ADF.CreateRecordset(vntRecordShape)
Dim fields(3)
fields(0) = vntField1Shape(0)
fields(1) = vntField2Shape (0)
fields(2) = vntField3Shape (0)
fields(3) = vntField4Shape (0)
' 给新记录集填充新数据值。
Dim fieldVals(3)
' 使用 AddNew 添加记录。
fieldVals(0) = "Joe"
fieldVals(1) = 5
fieldVals(2) = CDate(#1/5/96#)
fieldVals(3) = 123.456
NewRS.AddNew fields, fieldVals
fieldVals(0) = "Mary"
fieldVals(1) = 6
fieldVals(2) = CDate(#6/5/96#)
fieldVals(3) = 31
NewRS.AddNew fields, fieldVals
fieldVals(0) = "Alex"
fieldVals(1) = 13
fieldVals(2) = CDate(#1/6/96#)
fieldVals(3) = 34.0001
NewRS.AddNew fields, fieldVals
fieldVals(0) = "Susan"
fieldVals(1) = 13
fieldVals(2) = CDate(#8/6/96#)
fieldVals(3) = 0.0
NewRS.AddNew fields, fieldVals
NewRS.MoveFirst
' 将新创建和填充的记录集设置为
' RDS.DataControl 的 SourceRecordset 属性
' 来绑定可视控件。
Set ADC1.SourceRecordset = NewRS
End Sub