8.9 使用数据对象向DBMS发送SQL语句
在Windows应用程序中,向DBMS发送SQL语句时,一般情况下使用都是被称为数据对象(Data Object)的软件组件(参考第7章所介绍的类)。一般的开发工具都包含了数据对象组件,在Visual Basic 6.0中,使用的是被称为ADO(ActiveX Data Object,ActiveX数据对象)的数据对象。
ADO是以下几个类的统称,其中包括用于建立和DBMS连接的Connection类,向DBMS发送SQL语句的Command类以及存储DBMS返回结果的Recordset类等。图8.14所示的应用程序的代码如代码清单8.1所示。
代码清单8.1 使用ADO访问数据库的示例程序(VB6.0)
‘实例化ADO提供的类
Dim con As New ADODB.Connection
Dim cmd As New ADODB.Command
Dim rst As New ADODB.Recordset
‘处理程序启动事件
Private Sub Form_Load()
con.ConnectionString=_
“Provider=Microsoft.Jet.OLEDB.4.0;Data Source=liquor_store.mdb”
con.Open
End Sub
‘处理“录入”按钮单击事件
Private Sub cmdCreate_Click()
rst.AddNew
SetRecordset
rst.Update
End Sub
‘处理“获取”按钮单击事件
Private Sub cmdRetrieve_Click()
If rst.State=adStateOpen Then
rst.Close
End If
rst.Open “SELECT 顾客姓名,住址,电话号码,商品名称,单价,销售量”&_
“FROM 顾客表,商品表,销售记录”&_
“AND 销售记录表.顾客ID=顾客表.顾客ID”&_
“AND 销售记录表.商品ID=商品表.商品ID”&_
con,adOpenKeyset,adLockOptimistic
If rst.RecordCount>0 Then
rst.MoveFirst
ShowRecordset
Else
MsgBox “找不到符合条件的数据!”,vbInformation,“”
End If
End Sub
‘处理“更新”按钮单击事件
Private Sub cmdUpdate_Click()
SetRecrodset
rst.Update
End Sub
‘处理“删除”按钮单击事件
Private Sub cmdDelete_Click()
rst.Delete
rst.Update
End Sub
‘处理“上一条”按钮单击事件
Private Sub cmdPrev_Click()
rst.MovePrevious
If rst.BOF Then
rst.MoveFirst
End If
ShowRecrodset
Ens Sub
‘处理“下一条”按钮单击事件
Private Sub cmdNext_Click()
rst.MoveNext
If rst.EOF Then
rst.MoveLast
End If
ShowRecordset
End Sub
‘Recordset显示Recordset中的内容
Private Sub ShowRecordset()
txtCustomer.Text=rst.Fields(0)
txtAddress.Text=rst.Fields(1)
txtPhone.Text=rst.Fields(2)
txtItems.Text=rst.Fields(3)
txtUnitPrice.Text=rst.Fields(4)
txtSales.Text=rst.Fields(5)
End Sub
‘Recordset设置Recordset中的数据
Private Sub SetRecordset()
rst.Fields(0)=txtCustomer.Text
rst.Fields(1)=txtAddress.Text
rst.Fields(2)=txtPhone.Text
rst.Fields(3)=txtItem.Text
rst.Fields(4)=txtUnitPrice.Text
rst.Fields(5)=txtSales.Text
End Sub
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论