Visual Basic 的数据源

顾名思义,数据源是一种易于访问的对象,它向任何数据使用者(任何可以和外部数据源绑定的类或控件)提供数据。在 Visual Basic 的先前版本中,数据源包括内部的 Data 控件和 RemoteData 控件。Visual Basic 6.0 介绍了几种新的数据源,它们允许创建丰富的应用程序以查看和编辑数据。例如,数据环境设计器允许创建层次结构记录集,或者从几个相关的表中创建树形格式的数据。除了新的数据源之外,通过将类模块的 DataSourceBehavior 属性设置为 vbDataSource,还可以创建自己的数据源。

新的数据源

Visual Basic 更加丰富的新数据源集合包括:

使用数据识别的类和用户控件创建数据源

Visual Basic 允许创建自己的数据源。使用新的功能,诸如类模块的 DataBindingBehavior 和 DataSourceBehavior 属性,可以封装方法、属性和事件,而这些方法、属性和事件对于创建可以从任何类型的数据库中访问数据的数据源或数据使用者是必需的。有关使用数据识别的类创建数据源和数据使用者的详细信息,请参阅创建数据识别类

除了创建数据识别的类之外,还可以创建自己的数据识别的用户控件。这样的控件可以与新的 ADO 数据控件类似,也可以根据需要自定义。有关创建数据识别的用户控件的范例,请参阅创建 MyDataControl 工程

数据环境设计器

数据环境是允许创建层次结构游标的新功能。层次结构游标是父记录集和子记录集的唯一结构。通常,层次结构游标将镜像映射关系数据库中相关表的结构。例如,Northwind 数据库中的表“Products”包含名称为“SupplierID”的字段。该字段包含来自相关表“Suppliers”的唯一 ID。使用数据环境设计器,可以创建层次结构游标,该游标可以显示在控件中,例如 Hierarchical FlexGrid 控件。

有关层次结构游标的详细信息,请参阅层次结构游标和数据形状。有关数据环境的详细信息,请参阅关于数据环境设计器

可创建的 ADO 记录集

使用 ActiveX 数据对象记录集(ActiveX Data Object Recordset)(ADOR) 库,可以在内存中创建 ADO 记录集,如下所示:

Private rs As New ADODB.Recordset ' 记录集的变量

Private Sub CreateRecordset()
With rs
.Fields.Append "ID", adInteger
.Fields.Append "Item", adBSTR, 255
.CursorType = adOpenStatic
.LockType = adLockOptimistic
.Open ' 不需要连接对象。
End With
Dim i As Integer

   For i = 1 To 100
      rs.AddNew
      rs!ID= i
      rs!Item = "thing " & i
      rs.Update
   Next i
   rs.MoveFirst
End Sub

一旦这样的记录集填充了数据,请将数据使用者的 DataSource 属性设置为该记录集,如下所示:

' myControl 是一个数据绑定用户控件,rsTempData ' 使用 ADODB 创建的临时记录集,并且由某些存储的数据填充。
Set myControl.DataSource = rs 

有关在代码中创建 ADO 记录集的范例,请参阅创建一个数据源。其它创建记录集并将其用作 DataGrid 控件的数据源的示例,请参阅通过类模块 DataGrid 控件