• 休闲生活
  • 教育教学
  • 经济贸易
  • 政法军事
  • 人文社科
  • 农林牧渔
  • 信息科技
  • 建筑房产
  • 环境安全
  • 当前位置: 达达文档网 > 达达文库 > 环境安全 > 正文

    Visual Basic访问数据库技术探讨

    时间:2021-04-08 07:54:53 来源:达达文档网 本文已影响 达达文档网手机站

    【摘要】本文从VB数据库体系结构的角度探讨了VB对数据库的支持,并且讨论了VB对数据库访问的三种方法。

    【关键词】控件;数据库;接口

    Visual BasicVisit data bank technology discussion

    LIUEr-gang

    【Abstract】this article has discussed VB from the VB database system structure angle to the database the support, and discussed VB to the database visit three methods.

    【key word】 controls; Database; Connection

    【中图分类号】:T391

    【文献标识码】:A 【文章编号】:1673-4041(2007)10-0133-03Visual Basic

    专业版是一种广泛使用的编程开发工具,它提供了对数据库应用的强大支持。VB访问数据库的方法大致有三类:使用数据绑定控件;直接调用ODBC 2.0 API接口函数;使用数据库存取对象变量(Data Access Object Variable)。

    1VB的数据库结构

    VB数据库的核心结构是Microsoft Jet数据库引擎,JET引擎的作用是支持多种ISAM(Indexed Sequential Access Method,即索引顺序存取方法)数据驱动程序。VB环境下Access是缺省的数据格式,对于其他的关系型数据库如FoxPro、Dbase(或 Xbase)、Paradox、Btrieve等,VB的专业版可兼容其驱动程序,这就使得VB能支持这些数据库格式。由上可见,Ms JET引擎实质上提供了一个符合ANSI标准的语法分析器,为查询结果集的使用而提供内存管理功能;并且连同所支持的数据库的外部接口为应用代码提供内部接口。

    2VB访问数据库的方法

    VB访问数据库的方法很多,在一般情况下分成三大类,而每一类又有很多方法。下面分别列出每一类。

    2.1数据控件法。数据库绑定的控件来实现数据的输入、显示、筛选等接口界面。

    Private Sub CmdSearch_Click()

    ListView1.ListItems.Clear

    If rshkblsk.State = adStateOpen Then rshkblsk.Close

    rshkblsk.Open “select dwbh,dwmc,sum(sjysl) as ysl from hkblsk where nd=” & dcnd.Text & “ and yf=” & dcyf.Text & “ group by dwbh,dwmc order by dwbh”, conn, adOpenForwardOnly, adLockReadOnly, adCmdText

    If rshkblsk.RecordCount > 0 Then rshkblsk.MoveFirst

    Do While Not rshkblsk.EOF

    Dim item1 As ListItem

    Set item1 = ListView1.ListItems.Add(, , rshkblsk.Fields(0))

    For i = 1 To rshkblsk.Fields.Count - 1

    item1.SubItems(i) = rshkblsk.Fields(i)

    Next

    rshkblsk.MoveNext

    Loop

    End Sub

    或给listview赋值

    Do While Not clsP.rsPlant.EOF

    Dim vListItem As ListItem

    i = i + 1

    a = clsP.srhSD(clsP.rsPlant(“bz”), mPlantM.vFltSDate, mPlantM.vFltEDate)

    a = clsP.srhCD(clsP.rsPlant(“pbz”), mPlantM.vFltSDate, mPlantM.vFltEDate)

    Set vListItem = ListView1.ListItems.Add(i, clsP.rsPlant(“pbz”), DateValue(clsP.rsPlant(“riqi”)))

    ListView1.ListItems(i).ListSubItems.Add 1, , clsP.rsPlant(“buyer”)

    ListView1.ListItems(i).ListSubItems.Add 2, , clsP.rsPlant(“kind”)

    "其余的类似

    "..............

    "..............

    Loop

    上面列举了VB支持的多种数据源访问控件,在VB和COM界面接口之间起着媒介作用。这些控件提供了一种减少代码实现数据访问的途径。程序员可以使用同样的对象、属性和方法来处理各种不同的数据库格式。也可从一种数据库格式变到另一种格式(例如,将本地的Microsoft Access数据库转换为网络上的SQL Server数据库),也可在单一的查询或报表中连接来自多个不同数据库的表。

    2.2直接调用ODBC 2.0 API接口函数。开放式数据库连接应用程序设计接口(ODBC API)定义了与数据库无关的编程模型。利用它提供的单一API接口,可以访问任何具有0DBC驱动程序的数据库或数据库服务器,无需考虑ODBC兼容级别。使用0DBC API开发的应用程序具有本地代码编程模型的灵活性。同时,它的编程方法是相当通用的,可以用于多种数据库格式。

    0DBC API由一些Windows的动态链接库(DLL)组成,这些动态链接库包含了一系列函数来为任何具有0DBC 驱动程序的数据库或者数据库服务器提供两种基本的数据库服务功能:

    2.2.1 设置或者取消ODBC数据源。一个数据源是指一个指定连接的数据库,通常称为DSN(数据源名称)。对于在程序中通过0DBC APL(通常称为Kegera)连接的每一个不同类型的数据库需要指定一个ODBC驱动器。0DBC使用Odbcinst.dll这个动态链接库来创建或者删除数据源。Odbcad32.exe是一个单独可执行的、用于创建0DBC数据源的应用程序,在Windows的控制面板上有0dbc32.exe这个应用程序的图标。

    2.2.2 把前端的客户端的查询语句或者其他有SQL声明传送到后台的服务器,并且把查询结果或者是对一个查询动作的确认从服务器端传送到客户端。Kegera连接数据源的ODBC驱动器,从而把SQL声明传送给这个驱动器。当Jet的查询引擎或客户/服务器类型的关系型数据库管理系统处理完一个SELECT查询后,Kegera把相应的记录返回到应用程序中。其他类型的桌面数据库的ODBC驱动器有它们各自的引擎,在处理INSERT、UPDATE或者DELETL查询时,0DBC驱动器返回的记录数将随着查询语句的不同而改变。

    2.2.3数据库存取对象变量(Data Access Object Variable)运用数据存取对象变量(Data Access Object Variable)的方法是VB专业版数据库编程中最重要的三种方法之一。相比使用数据控制项和绑定控制项或直接调用ODBC 2.0 API接口函数两种方法而言,它可以极大地提高数据库应用程序的灵活性和精巧性。除了一些需求有限的数据库应用可以用基本的数据控件和绑定控制项法解决以外,其它的VB数据库应用程序大都能用数据存取对象法来完成。

    利用它可以在程序中存取ODBC 2.0的管理函数;可以在执行期间动态地建立表、字段、及索引;同步更新几张表;在执行期间“显示”数据库的基本结构;可以控制多种记录类型:Dynaset、Snapshot及Table记录集合对象;可以存取存储过程和查询动作;可以存取数据库集合对象,如TableDefs、Fields、Indexes以及QueryDefs;具有真正的事物处理能力。

    首先,只有VB的专业版(或企业版,因为企业版包括了专业版所有的功能。以下不再赘述)才支持使用数据存取对象变量的编程方法。即只有使用专业版才能获得数据存取对象变量。

    数据存取对象最大的扩展是它提供了一个一致的数据库编程接口。即以抽象方式表示的数据库的内部结构和操作,这种抽象可以将许多复杂问题(包括静态操作和动态操作)封装起来。显然,VB的数据存取对象在ODBC 2.0数据库接口之上又提供了一个简明一致的附加层次。

    在VB的数据存取对象里,所有的数据库均可以看作是一个由结构良好、一致的对象所组成的大包。程序员可以使用对象的属性及方法对这些对象进行检验、操作、创建及删除。

    VB专业版中的数据存取对象可以分为两类,一类用于数据库结构的维护和管理,其中表示数据库结构时可以使用下面的对象:DataBase、TableDef、Field、Index,以及三个集合(Collection):TableDefs、Fields和Indexes。另一类数据存取对象则用于数据的存取。

    每一个对象集合都是由若干个对象组成的,这些数据对象的集合可以完全看作是一个数组,并按数组的方法来调用。

    一旦数据库对象建立后,就可以用它对数据库的结构进行修改和数据处理。

    数据库对象变量之间的关系具体如图1所示。其中可见DataBase是最基本也是最重要的变量。

    以下是打开一个数据库后,并取得其内各个表单(Table)的具体信息的程序实例。

    Sub PrintTableInfo()

    Dim I, J As Integer, Fname As String

    Dim Db1 As Database, Td1 As TableDefs

    Dim Fld1 As Fields

    Dim FieldNum As Integer

    "CMD1是一个打开文件对话框的控件名

    CMD1.Filter = “ 数据库文件(*.MDB)|*.MDB|所有文件|*.* ”

    CMD1.DialogTitle = “ 调入数据库文件 ”

    CMD1.FilterIndex = 1

    CMD1.Action = 1

    Fname$ = CMD1.FileName

    Set Db1 = OpenDataBase(Fname$) "打开一个数据库文件

    Set Td1 = Db1.TableDefs

    "读取并在窗体内打印所有表单的名字,每个表单内的字段数以及字段名和类型

    For I = 0 To Db1.TableDefs.Count - 1

    Print Td1(I).Name

    Set Fld1 = Td1(I).Fields

    FieldNum% = Fld1.Count

    Print “当前表单共有”; Str$(FieldNum); “个字段”

    For J = 0 To Fld1.Count - 1

    Print “字段名:”, Fld1(J).Name

    Print “类型:”, Fld1(J).Type

    Next J

    Next I

    End Sub

    从以上可以清晰地看到各数据库对象变量的层次关系。可见对较复杂和有更多要求的数据库应用程序来说,使用数据存取对象变量是最好的一种方法。

    3总结

    近来随着Web应用软件的迅速发展和现有数据存储形式的多种多样,Visual Basic访问数据库的解决方案面临诸多挑战。为此Microsoft 提出一种新的数据库访问策略,即“统一数据访问”(Universal Data Access)的策略。“统一数据访问”提供了高性能的存取包括关系型和非关系型在内的多种数据源,提供独立于开发工具和开发语言的简单的编程接口,这些技术使得企业集成多种数据源、选择更好的开发工具、应用软件、操作平台、建立容易维护的解决方案成为可能。“统一数据访问”(Universal Data Access)的基础是Microsoft 的数据访问组件。这些组件包括ActiveX Data Objects(ADO)、Remote Data Service(RDS,也称“高级数据连接器”或ADC)、OLE DB和ODBC。总之,在VB中访问数据库的方法很多,根据具体的环境、条件、要求而采用适当的方案。

    收稿日期:2007-10-15

    相关热词搜索: 数据库技术 探讨 访问 Visual Basic

    • 生活居家
    • 情感人生
    • 社会财经
    • 文化
    • 职场
    • 教育
    • 电脑上网