返回
微电脑世界1999年第14期

一致的数据访问技术 ADO/OLE DB(五)

潘爱民

  六、示例程序

  至此我们已经全面介绍了Microsoft 一致数据访问技术,重点讲述了ADO 对象模型以及它的用法,最后我们通过一个简单的例子来说明用ADO 访问数据库的基本用法。
  例程序在Visual Basic 环境下完成,首先创建一个标准的EXE 工程,使用工程的缺省表单浏览数据库。我们把工程名改为ADOSample,把表单名改为ADOSampleForm。程序最终的运行结果如图1 所示。
data005_1.jpg (44858 字节)
  图1 例程序运行界面

  为了在工程中使用ADO,首先我们使用"Project" 菜单下的"References" 命令,选中"Microsoft ActiveX Data Objects Library",以后我们在程序中就可以直接使用ADO 的对象了。

  接下去我们使用"Project" 菜单下的"Components" 命令选中"Microsoft FlexGrid Control" 控制,然后在表单中加入FlexGrid 控制,我们使用缺省的控制名MSFlexGrid1。

  为了简化程序,我们使用了Visual Studio 6.0 随带的Access 数据库文件Nwind.mdb,在程序中加入连接串定义,所有的全局变量定义如下:


Dim WithEvents cn As ADODB.Connection

Dim cmd As ADODB.Command

Dim rs As ADODB.Recordset

Dim ConnectString As String
  当程序启动时,建立连接对象,代码如下:

Private Sub Form_Load()

  Set cn = New ADODB.Connection

  On Error GoTo EH

  

Const ConnectString =

"Provider=Microsoft.Jet.OLEDB.3.51;"

& "Data Source=c:\Program Files\Microsoft

Visual Studio\vb98\Nwind.mdb"

  cn.ConnectionTimeout = 5

  cn.CursorLocation = adUseClient

cn.Open ConnectString, Options:=adAsyncConnect

  Exit Sub



EH:

  Select Case Err

     Case 40002:

       MsgBox "Could not connect..." & Error

     Case Else

       Debug.Print Err, Error

  End Select

End Sub

  当连接完成后,我们执行一个基本的查询命令,并调用ConfigFlexGrid 函数配置FlexGrid 控制的显示格式,调用ShowDataInFlexGrid 函数显示结果记录集,下面是连接对象的事件控制函数:

Private Sub Cn_ConnectComplete(ByVal

pError As ADODB.Error, adStatus As

ADODB.EventStatusEnum, ByVal pConnection

As ADODB.Connection)



  Set cmd = New ADODB.Command

  cmd.CommandText = "Customers"

  cmd.CommandType = adCmdTable

  cmd.ActiveConnection = cn

  

  Set rs = cmd.Execute

  MSFlexGrid1.Visible = False

  ConfigFlexGrid

  ShowDataInFlexGrid

  MSFlexGrid1.Visible = True

End Sub

下面是ConfigFlexGrid 和ShowDataInFlexGrid 函数的代码:

Private Sub ConfigFlexGrid()

  MSFlexGrid1.Left = 0

  MSFlexGrid1.Top = 0

  MSFlexGrid1.Rows = 1

  MSFlexGrid1.Cols = 8

  MSFlexGrid1.Row = 0

  MSFlexGrid1.Col = 1

  MSFlexGrid1.ColWidth(0) = 300

  MSFlexGrid1.ColWidth(1) = 1500

  MSFlexGrid1.ColWidth(2) = 2500

  MSFlexGrid1.ColWidth(3) = 1500

  MSFlexGrid1.ColWidth(4) = 1500

  MSFlexGrid1.ColWidth(5) = 1500

  MSFlexGrid1.ColWidth(6) = 1200

  MSFlexGrid1.ColWidth(7) = 1200

  MSFlexGrid1.TextMatrix(0, 1) = "Customers ID"

  MSFlexGrid1.TextMatrix(0, 2) = "Company Name"

  MSFlexGrid1.TextMatrix(0, 3) = "Contact Name"

  MSFlexGrid1.TextMatrix(0, 4) = "Contact Title"

  MSFlexGrid1.TextMatrix(0, 5) = "City"

  MSFlexGrid1.TextMatrix(0, 6) = "Country"

  MSFlexGrid1.TextMatrix(0, 7) = "Phone"

End Sub


Private Sub ShowDataInFlexGrid()

  Dim strTemp As String

  
  On Error Resume Next

  MSFlexGrid1.Rows = 1

  rs.MoveFirst

  Do While Not rs.EOF

     strTemp = ""

     strTemp = strTemp & vbTab & rs!CustomerID

     strTemp = strTemp & vbTab & rs!CompanyName

     strTemp = strTemp & vbTab & rs!ContactName

     strTemp = strTemp & vbTab & rs!ContactTitle

     strTemp = strTemp & vbTab & rs!City

     strTemp = strTemp & vbTab & rs!Country

     strTemp = strTemp & vbTab & rs!Phone

     MSFlexGrid1.AddItem strTemp

     rs.MoveNext

  Loop

End Sub

  为了使窗口大小调整时,FlexGrid 控制也能够随着变化,响应表单的Resize 事件,事件控制函数如下:

Private Sub Form_Resize()

  MSFlexGrid1.Width = Width - 100

  MSFlexGrid1.Height = Height - 400

End Sub

  当程序退出时,做基本的清理工作,代码为:

Private Sub Form_Terminate()

  Set cn = Nothing

  Set cmd = Nothing

  Set rs = Nothing

End Sub
  现在我们可以运行程序了,读者可以试一试。

  七、结束语

  随着信息化时代的不断深入,信息处理和信息共享变得越来越重要,数据访问技术对于信息系统也就显得尤为重要,本文介绍了Microsoft 提供的一致数据访问(UDA) 技术,从基本的结构模型到深入介绍ADO 对象模型,并从应用的角度分析了ADO 的一些特性,最后通过例程序展示了ADO 的基本用法。
  本文旨在对UDA 技术作一个基本介绍,由于Internet 技术发展很快,有些最新的技术在本文中没有涉及到,有兴趣的读者可以查阅网上有关资料。希望文中所讲述的内容能帮助读者更好地理解和使用这种技术。

  (全文完)