科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道基础软件VB6.0数据库访问技术与例程解析

VB6.0数据库访问技术与例程解析

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

本文简要分析了VB6.0访问数据库的几种技术,并在此基础上总结出几个实用的数据库开发经验

作者:冯杰 来源:yesky 2007年10月15日

关键字:

  • 评论
  • 分享微博
  • 分享邮件
三. 实例解析

  下面介绍一个实例,来消化以上的相关知识。这里我在一个程序界面下实现了DAO,ADO,ODBC,OLEDB四种数据库访问方式。



  程序代码分析:


'整个程序功能是选择不同的连接方式来进行显示工作,三种方式显示效果完全相同
'下面是主程序过程
Private Sub Command1_Click()
 Dim selitem As Integer
 '判断连接数据库的方式
 If Option1.Value = True Then
  selitem = 1
 Else
  If Option2.Value = True Then
   selitem = 2
  Else
   selitem = 3
  End If
 End If

 '选取不同的数据库连接方式
 Select Case selitem
 Case 1:
  '使用DAO的数据库连接方式
  Call ShowByDAO
 Case 2:
  '使用ADO的数据库连接方式
  Call ShowByADO
 Case 3:
  '使用ODBC的数据库连接方式
  Call ShowByODBC
 Case 4:
  '使用OLEDB的数据库连接方式
  Call ShowByOLEDB
 End Select
End Sub

Private Sub ShowByDAO()
 '使用DAO的数据库连接方式
 Dim db As Database
 Dim rs As Recordset
 Dim sqlstr$ '存放查询语句
 Set db = OpenDatabase(App.Path & "\db1.mdb")
 sqlstr = "select * from 成绩表"
 Set rs = db.OpenRecordset(sqlstr)
 '显示结果
 Call GridShow(rs)
End Sub

Sub ShowByADO()
 Dim conn As New ADODB.Connection
 Dim rs As New ADODB.Recordset
 '使用数据源来连接数据库
 conn.Open "dsn=data"
 rs.CursorType = adOpenKeyset
 rs.LockType = adLockOptimistic
 rs.Open "select * from 成绩表", conn
 Call GridShowOfADO(rs)
End Sub

Sub ShowByODBC()
 Dim conn As New ADODB.Connection
 Dim rs As New ADODB.Recordset
 '使用数据源来连接数据库
 conn.Open "Provider=MSDASQL.1;Persist Security Info=False;Data Source=data"
 rs.Open "select * from 成绩表", conn
 '显示结果
 Call GridShowOfADO(rs)
End Sub

Sub ShowByOLEDB()
 Dim conn As New ADODB.Connection
 Dim rs As New ADODB.Recordset
 '使用数据源来连接数据库
 conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + App.Path & "\db1.mdb" + ";Persist Security Info=False"
 rs.Open "select * from 成绩表", conn

 '显示结果
 Call GridShowOfADO(rs)
End Sub

Sub GridShow(rs As Recordset)
 '对dao方式进行显示工作
 MSFlexGrid1.TextMatrix(0, 0) = "姓名"
 MSFlexGrid1.TextMatrix(0, 1) = "性别"
 MSFlexGrid1.TextMatrix(0, 2) = "语文"
 MSFlexGrid1.TextMatrix(0, 3) = "数学"
 MSFlexGrid1.TextMatrix(0, 4) = "英语"
 rs.MoveLast
 MSFlexGrid1.Rows = rs.RecordCount + 1
 MSFlexGrid1.Cols = rs.Fields.Count
 Dim i%
 i = 1
 rs.MoveFirst
 While (Not rs.EOF)

  MSFlexGrid1.TextMatrix(i, 0) = rs.Fields(0)
  MSFlexGrid1.TextMatrix(i, 1) = rs.Fields(1)
  MSFlexGrid1.TextMatrix(i, 2) = rs.Fields(2)
  MSFlexGrid1.TextMatrix(i, 3) = rs.Fields(3)
  MSFlexGrid1.TextMatrix(i, 4) = rs.Fields(4)
  rs.MoveNext
  i = i + 1
  'If (rs.EOF = True) Then
  ' Exit For
 Wend
End Sub

Sub GridShowOfADO(rs As ADODB.Recordset)
 '对ado方式进行显示工作
 MSFlexGrid1.TextMatrix(0, 0) = "姓名"
 MSFlexGrid1.TextMatrix(0, 1) = "性别"
 MSFlexGrid1.TextMatrix(0, 2) = "语文"
 MSFlexGrid1.TextMatrix(0, 3) = "数学"
 MSFlexGrid1.TextMatrix(0, 4) = "英语"
 '注意recordcount属性必须在当前记录指针在最后一条记录时才会返回正确的值
 rs.MoveLast
 MSFlexGrid1.Rows = rs.RecordCount + 1
 MSFlexGrid1.Cols = rs.Fields.Count
 Dim i%
 i = 1
 rs.MoveFirst
 While (Not rs.EOF)
  MSFlexGrid1.TextMatrix(i, 0) = rs.Fields(0)
  MSFlexGrid1.TextMatrix(i, 1) = rs.Fields(1)
  MSFlexGrid1.TextMatrix(i, 2) = rs.Fields(2)
  MSFlexGrid1.TextMatrix(i, 3) = rs.Fields(3)
  MSFlexGrid1.TextMatrix(i, 4) = rs.Fields(4)
  rs.MoveNext
  i = i + 1
 Wend
End Sub

Private Sub Command2_Click()
End
End Sub

  上述代码已经在Windows 2000 professional和Visual Basic 6.0的环境下调试成功。

  四.小结

  本文通过对数据库访问相关技术的分析与总结,提出若干有价值的经验。借鉴这些经验,会给开发带来一定的便利。

查看本文来源

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章