专注于互联网--专注于架构

最新标签
网站地图
文章索引
Rss订阅

首页 »VB教程 » vb6.0数据库:VB6.0数据库访问技术和例程解析 »正文

vb6.0数据库:VB6.0数据库访问技术和例程解析

来源: 发布时间:星期四, 2009年1月15日 浏览:96次 评论:0
  引言

  作为微软旗下款优秀RAD工具VB在数据库应用开发方面能力十分强大微软设计了多种数据库访问思路方法下面通过对VB访问数据库多种技术进行深入剖析并整理总结出实际开发中几点经验希望能够对那VB初学者有所帮助(注意文中所有描述均在Windows 2000 professional和Visual Basic 6.0环境下进行)

  . DAO、RDO、ODBC和ADO

  在VB开发环境中可以使用 3种数据库访问方式它们分别是:数据访问对象(DAO)、远程数据对象(RDO)和ADO对象模型

  DAO:

  数据访问对象是用来显露了Microsoft Jet数据库引擎(最早是给Microsoft Access 所使用现在已经支持其它数据库)并允许开发者通过ODBC直接连接到其他数据库直接连接到 Access 表DAO 最适用于单系统应用或在小范围本地分布使用其内部已经对Jet数据库访问进行了加速优化而且其使用起来也是很方便所以如果数据库是Access数据库且是本地使用建议使用这种访问方式

  VB已经把DAO模型封装成了DataControl控件分别设置相应DatabaseName属性和RecordSource属性就可以将DataControl控件和数据库中记录源连接起来了以后就可以使用DataControl控件来对数据库进行操作

  RDO

  RDO(Remote Data Objects)远程数据对象是个到ODBC、面向对象数据访问接口它同易于使用DAO style组合在提供了个接口形式上展示出所有ODBC底层功能和灵活性尽管RDO在很好地访问Jet或ISAM数据库方面受到限制而且它只能通过现存ODBC驱动来访问关系数据库但是RDO已被证明是许多SQL Server、Oracle 以及其他大型关系数据库开发者经常选用最佳接口RDO提供了用来访问存储过程和复杂结果集更多和更复杂对象、属性以及思路方法

  和DAO在VB中也把其封装为RDOControl控件了其使用思路方法和DAOControl控件使用思路方法完全

  ODBC

  ODBC(Open Database Connectivity开放数据库互连)是微软公司开放服务结构(WOSA,Windows Open Services Architecture)中有关数据库个组成部分它建立了组规范标准并提供了组对数据库访问标准API(应用编程接口)这些API利用SQL来完成其大部分任务ODBC本身也提供了对SQL语言支持用户可以直接将SQL语句送给ODBC

  个基于ODBC应用对数据库操作不依赖任何DBMS不直接和DBMS打交道所有数据库操作由对应DBMSODBC驱动完成也就是说不论是FoxPro、Access还是Oracle数据库均可用ODBC API进行访问由此可见ODBC最大优点是能以统方式处理所有数据库

  个完整ODBC由下列几个部件组成:

  1. 应用(Application)

  ODBC管理器(Administrator)位于Windows 95控制面板(Control Panel)32位ODBC内其主要任务是管理安装ODBC驱动和管理数据源

  驱动管理器(Driver Manager)驱动管理器包含在ODBC32.DLL中对用户是透明其任务是管理ODBC驱动是ODBC中最重要部件

  2. ODBC API

  ODBC 驱动些DLL提供了ODBC和数据库的间接口

  数据源数据源包含了数据库位置和数据库类型等信息实际上是种数据连接抽象

  ODBC连接目前仅仅限于关系型数据库对于其他数据源比如EXCEL、文本文件都不能进行访问而且有很多DBMS(数据库管理系统)都不能充分支持其所有功能相比的下OLEDB可以存取任何形式数据所以其功能是相当强大它也指导了目前技术发展方向

  ADO

  ADO(ActiveX Data Object)是DAO/RDO后继产物ADO 2.0在功能上和RDO更相似而且般来说在这两种模型的间有种相似映射关系ADO"扩展"了DAO和 RDO 所使用对象模型这意味着它包含较少对象、更多属性、思路方法(和参数)以及事件

  作为最新数据库访问模式ADO使用也是简单易用所以微软已经明确表示今后把重点放在ADO上对DAO/RDO不再作升级所以ADO已经成为了当前数据库开发主流

  ADO涉及数据存储有DSN(数据源名称)、ODBC(开放式数据连接)以及OLE DB 3种方式后面例程将详细讲解这 3种方式具体访问实现

  要使用ADO必须清楚ADO对象层次结构其大体上分为以下7个对象层次:

  1、 Command 对象:包含有关某个命令例如查询串、参数定义等信息Command 对象在功能上和 RDOrdoQuery 对象相似

  2、 Connection 对象:包含有关某个数据提供信息Connection 对象在功能上和 RDO rdoConnection 对象是相似并且包含了有关结构描述信息它还包含某些 RDOEnvironment 对象功能例如transaction Control控件

  3、 Error对象:包含数据提供出错时扩展信息Error 对象在功能上和 RDO rdoError 对象相似

  4、 Field 对象:包含记录集中数据某单个列信息Field 对象在功能上和 RDOrdoColumn 对象相似

  5、 Parameter 对象:包含参数化Command对象某单个参数信息该 Command对象有个包含其所有Parameter 对象 Parameters 集合Parameter 对象在功能上和 RDO rdoParameter 对象相似

  6、 Property对象:包含某个 ADO 对象提供定义特征没有任何等同于该对象RDO但DAO有个相似对象

  7、Record对象:用来存储数据操作返回记录集此对象和Connection对象是所有对象最重要两个对象

  当然对于初级用户来说我们只需要掌握其中Connection对象和RecordSet对象就可以实现基本数据库操作在后面经验介绍里面我将给出详细介绍

   2. 开发经验小结:

  前面总体上介绍了下当前在VB平台下数据库访问技术这些技术也是当前数据库技术主流下面笔者结合近几年开发经验给出些开发经验和小窍门技巧以供参考:

  经验:如果数据量不大而且要求开发周期短情况建议使用DAO+Access虽然DAO功能并不强大但是其对Jet引擎进行了加速优化处理所以这种搭配应该是比较好选择

  经验 2:RDO当前已经用很少了般用ADO来替代

  经验 3:(本经验很重要)使用ADO开发时连接数据库方式有 3种(前面已经叙述了)其中DSN需要用户首先使用要将所要操纵数据库设置为数据库源并给其命名思路方法是在控制面板->管理工具->数据源(ODBC)下面进行配置比如设置数据源名称为data,那么可以通过下面几行代码来连接数据库:

  Dim conn As New ADODB.Connection
Dim rs As New ADODB.Record
'连接数据库
conn.Open "dsn=data"
'打开数据源(即选定操作数据对象)
rs.Open SQL语句, conn
  但是如果是使用ODBC和OLEDB方式进行连接那么大家定知道在连接串上那长串代码不要说对于初学者就是对于那些经验丰富员来说也很难记住这串代码那么如何可以记住这串代码呢?其实思路方法很简单只要添加个ADO DataControl控件然后在其属性框中使用向导进行设置后那么最后向导就会自动生成段ConnectionString,只需要将这行代码拷贝下来然后放到conn.open的后连接串参数位置上就可以了这条经验希望读者能够记住实际开发中很实用

  经验 4:前面讲到手动设置ODBC数据源这里可以通过来进行动态设置首先要清楚是ODBC详细信息全部存放在注册表下述键值内:"HKEY_LOCAL_MACHINE\SOFTWARE\ODBC"通过Win32WriteProfileString来对相应键值进行修改即可达到目

  经验 5:通常将数据库连接代码和资源释放代码放入各自特定里面般大里需要经常对这两个功能模块进行这样做就可以提高效率当然很多时候都需要写成连接池形式

  经验 6:使用VB在SQL中处理含单引号串时串数据都用单引号引起来如:

  Select * from MyTable Where ID='FirstID'  若其中FirstID为First'ID即中间多出个单引号则上述写法将导致解决办法是将串中个单引号用两双引号替换下面StrToSQL完成该功能并用单引号将处理后串引起来:

   Private Function StrToSQL(ByVal strValue As String) As String
    StrToSQL = "'" + Replace(strValue, "'", "''") + "'"
 End Function
  在写SQL时如有串数据不管其中有没有单引号都可以这样使用:

     strValue="First'Id"
   strSQL="Select * from MyTable Where ID="+StrToSQL(strValue)


   3. 例子解析

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

 Wend
End Sub
Private Sub Command2_Click
End
End Sub  上述代码已经在Windows 2000 professional和Visual Basic 6.0环境下调试成功



   4.小结

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



0

相关文章

读者评论

发表评论

  • 昵称:
  • 内容: