[返回]
微电脑世界1999年第14期
潘爱民
六、示例程序
至此我们已经全面介绍了Microsoft
一致数据访问技术,重点讲述了ADO
对象模型以及它的用法,最后我们通过一个简单的例子来说明用ADO
访问数据库的基本用法。
例程序在Visual Basic 环境下完成,首先创建一个标准的EXE
工程,使用工程的缺省表单浏览数据库。我们把工程名改为ADOSample,把表单名改为ADOSampleForm。程序最终的运行结果如图1
所示。

图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
技术发展很快,有些最新的技术在本文中没有涉及到,有兴趣的读者可以查阅网上有关资料。希望文中所讲述的内容能帮助读者更好地理解和使用这种技术。
(全文完)