定义 Recordset

用户可以创建 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