分类

  • 软件天地

  • Visual Basic数据库操作方法小结‖
    望能对大家有所启发。
    对数据库操作应用时,总结了如

    下的几种方法,供初学者参考,希


        1、数据库打开/关闭方法的选择

        在通常情况下,数
    式如下:
    据库的打开操作是在程序代码中

    使用OpenDatabase方法实现,其格

      Set database=workspa
    ce.OpenDatabase(dbname,optio
    ns,readonly,connect)
      可以通过指定数据库名字、打开方式
    Close方法即可关闭该数据库。由于涉及V
    ,VB的数据控件(Data Control)也可以执
    性窗口中预先填好数据库打开的相关参数
    式打开,而当该数据控件终止时,对应的
    库,其后的数据库访问操作没有什么本质
    、连接信息等参数打开一个现已存在的数据库,使用
    B代码的编写,其软件编制工作比较复杂。 另一方面
    行数据库的打用关闭操作。我们可以在数据控件的属
    ,一旦该数据控件启动,数据库便会自动以指定的方
    数据库也将自动关闭。对于按这二种方式打开的数据
    的区别。

        以上两种数据库打用关闭的方法
    动态地设置数据库打开参数,并且可以多
    大的灵活性。而如果使用数据控件,则不
    据库的相关参数,程序开始运行后便会自
    自动关闭该数据库,因此显得相当方便。
    方法:如果要求数据库在程序运行中始终
    只读状态),那么,可以采用数据控件方
    开时而关闭,或者经常在只读和读写方式
    代码。
    各有千秋:使用OpenDatabase方法可以在程序运行中
    次以不同的方式打开和关闭同一个数据库,具有相当
    需要另外编写VB代码,只要在程序编制时预先设置数
    动地以我们指定的方式打开数据库,并在程序终止时
    在实际应用中,可以视情况的不同而采用不同的处理
    处于打开状态并且其打开方式保持不变(如一直处于
    法打开数据库;如果要求数据库在程序运行中时而打
    间来回切换,则只能采用OpenDatabase方法编写程序


        2、通过相对路径指定数据库文件

        在很多情况下,不
    要打开的数据库文件。但是
    目录下。因此该数据库文件
    法来解决这个问题。
    管采用上述哪一种方法打开数据
    ,我们通常不能保证该软件完成
    的绝对路径一般在设计时还难以

    库,都必须在程序设计时就指定需
    后一定会被安装在每台机器的同一
    完全确定,只能采用相对路径的办


        在VB中,App对象是一个全局对
    反映的是当前应用程序的可执行文件(.ex
    过使用App对象的Path属性,可以方便地
    文件存放在与程序路径相关的目录下,便
    程序运行时,通过App对象的Path属性动
    象,用来提供当前应用程序的相关信息,其Path属性
    e)所在的绝对路径,并且只在程序运行时才有效。通
    获得当前程序所在的目录路径。因此,如果把数据库
    可以在程序设计时就指定数据库文件的相对路径,当
    态地获取其绝对路径。
      下面的一段代码,用来
    在数据控件Data1的Databas
    合,组成数据库文件的绝对
    在程序开始运行时获取程序的路
    e Name属性中与数据库文件的相
    路径。这段代码通常出现在Form
    径,并赋值给变量AppPath,然后
    对路径"DatabaseSample.Mdb"结
    -Load中:

      Dim AppPath As String ' 设置路径变量                  
      AppPath=App.Path ' 获取程序路径                            
      If Right(AppPath,1)<>""Then AppPath=AppPath+""

       ' 若路径尾部没有"",则添加之                                          
       Data1.Database Nam
    e=AppPath+"DatabaseSample.m
    db"
       ' 与相对路径结合,组成绝对路径                                           

        3、用SQL语句完成数据库操作

        SQL也就是结构化
    数数据库软件系统中均得到
    的数据库查询操作,具有较
    查询语言,是用于数据库查询的
    支持。1句SQL语句通常可以完成
    高的工作效率。
    一种通用标准语言,在现今的大多
    以前由许多条语句才能完成的复杂


        在VB中,SQL语句往往作为某些
    件那样直截了当),比如可以把SQL语句作

    特定方法的参数而得以执行(没有FoxPro等数据库软
    为Execute方法的1个字符串参数而执行,其格式如下


      object.Execute SQL-statement,options     

        在其中的SQL-statement字符串
    、DELETE及UPDATE等。下面的例子是在数
    EMployees数据表中,选择字段LastName=
    FirstName这2个字段的内容,保存到同一
    中,可以使用标准的SQL语句,如:SELECT、INSERT
    据库对象DB中执行SQL语句,从当前数据库的
    'King'的所有记录,并将这些记录的LastName和
    数据库的Backup数据表中:

      DB.Execute("SELECT L
    astName,FirstName INTO Backu
    p FORM Employees
      WHERE LastName='King';")                             

        4、For语句在数据库中的应用

        For语句是几乎所
    可以完成一些指定的工作。
    行若干操作,而不必预先设
    有高级语言都有的语句,通常用
    而在VB中,For语句还可以用来
    定循环次数,其格式如下:
    来完成指定次数的循环,在循环中
    对某个集合中的每1个元素循环执


      For Each element In group                            
       [statements]                                                    
      Next[element]                                                   

        For语句的这一特点可用于按照
    库对象DB所指的数据库中的所有数据表进
    指定条件搜索整个数据库。以下的代码便可以对数据
    行搜索,并完成指定的操作:

      For Each Td In DB.Ta
    ble Defs ' 循环搜索数据库中
    的所有数据表
       ... ... ' 对数据表执行指定的操作                                  
      Next                                                                     

        5、复制数据库的结构定义

        在数据库应用中,
    到另一个数据库中。由于新
    又不近相同,因此,如果通
    ,则该程序将变得相当冗长
    应用方法,用相当短的VB语
    经常需要在程序运行时动态地把
    型的数据库可以同时包含若干个
    过逐个定义数据表中所有字段的
    和复杂,日后的维护也比较困难
    句完成同样的工作,实且程序也
    一个数据库的结构定义完整地复制
    数据表,而每个数据表的结构定义
    类型、长度的方法复制数据库结构
    。但是,通过综合运用上述的几种
    易于理解和维护。

        程序清单如下:                                                            
      Sub CopyDBStrnc(src As String,ds
    t As String)
       ' 定义子程序Copy DBStrnc,用于复制数据库结构                  
       ' 调用参数:                                                              
       ' src--源数据库的文件名                                              
       ' dst--目的数据库的文件名                                            
       Dim DB As Database
    ,Td As TableDef,SQLstr As St
    ring
       ' 定义变量:                                                              
       ' DB--数据库对象                                                      
       ' Td--数据表定义对象                                                  
       ' SQLstr--SQL语句变量                                          
       Set DB=Create Database(dst,dbL
    angGeneral)
       ' 创建目的数据库dst                                                    
       ' 关闭目的数据库dst                                                    
       DB.Close                                                            
       Set db=OpenDatabase(src,False,True)      
       ' 以共享、只读方式打开源数据库src                                      
       For Each Td In DB.TableDefs                      
        ' 循环搜索源数据库DB中的所有数据表定义                                

        If(Td.Attributes
    And dbSyste mObect)=0 Then
         ' 忽略系统数据表,只针对用户定义的数据表进行搜写                      
         SQLstr="SELECT
    * INTO"+Td.Name+"IN"+dst+"'
    FROM"+
             Td.Name+"'IN"+src+"'WHERE False'
         ' 对SQL语句变量赋值,完成以下功能:                                
         ' 从源数据库src的数据表中选择所有字段                              
         ' 存入目的数据库dst的同名数据表中                                  
         ' 选择数据表的字段定义,不包括任何记录                                
         DB.Execute(SQLstr) ' 执行SQL语句                
        End If                                                              
       Next ' 结束循环搜索                                                  
       DB.Close ' 关闭源数据库                                          
      Exit Sub ' 结束子程序定义                                          


    上一页 下一页




    map