存取对象变量库结构作为一个功能较完备的Windows软件开发平台,Visual Basic专业版提供了对数据库应用的强大支持。尤其提供了使用数据控件和绑定控制项,使用数据库存取对象变量(Data Access Object Variable),直接调用ODBC 20 API接口函数等三种访问数据库的方法。对其标准内置的Ms Access数据库,它可以提供不弱于专业数据库软件的支持,可以进行完整的数据库维护、 *** 作及其事务处理。在VB中,将非Access数据库称为外来数据库。对于FoxPro、dBASE、Paradox等外来数据库。虽然借助VB的Data Manager 能够对这些数据库进行NEW、OPEN、DESIGN、DELETE等 *** 作,但在应用程序的运行状态中并不能从底层真正实现这些功能。本文从使用数据库存取对象变量的方法出发,实现了非Access格式数据库(以FoxPro数据库为例)的建新库、拷贝数据库结构、动态调入等 *** 作,阐述了从编程技巧上弥补VB对这些外来数据库支持不足的可行性 。
一、VB数据库的体系结构具体的VB的数据库结构。
VB数据库的核心结构是所谓的MicroSoft JET数据库引擎,JET引擎的作用就像是一块"面板",在其上可以插入多种ISAM(Indexed Sequential Access Method,即索引顺序存取方 法) 数据驱动程序。JET引擎为Access格式数据库提供了直接的内部(build-in)支持,这就是VB对Access数据库具有丰富支持的真正原因。
VB专业版中提供了FoxPro、dBASE(或 Xbase)、Paradox、Btrieve等数据库的ISAM驱动程序,这就使得VB能支持这些数据库格 式。另外,其他的许多兼容ISAM的驱动程序也可以通过从厂商的售后服务得到。因而从理论上说,VB能支持所有兼容ISAM的数据库格式(前提是只需获得这些数据库的ISAM驱动接口程序)。
由上可见,Ms JET引擎实质上提供了:一个符合ANSI标准的语法分析器;为查询结果集的使用而提供的内存管理功能;同所支持的数据库的外部接口;为应用代码提供的内部接口。实际上,在VB中从一种数据库类型转化为另一种数据库类型几乎不需要或只需要很少的代码修改。而且,尽管dBASE、Paradox本身的DDL (Data Definition Language,即数据定义语言)和DML(Data Manipulation Language,即数据 *** 纵语言)是非结构化查询的,但它们仍然可以使用VB的SQL语句和JET引擎来 *** 纵。
从VB的程序代码的角度来看,ODBC,ISAM驱动程序以及Ms Access数据库的整个外部结构够可以统一为一个一致的编程接口。也即是说,提供给VB应用程序员的记录集对象视图同所使用的数据库格式及类型是相互独立的。即对FoxPro等数据库仍然可以使用众多的数据库存取对象变量,这就为非Access数据库的访问提供了最重要的方法。
二 、使用非Access数据库时的参数设置及配置文件的参数读取如果在VB的程序中使用了数据库的 *** 作,将应用程序生成EXE文件或打包生成安装程序后,则必须提供一个配置 (INI)文件,在INI文件中可以对不同类型的数据库进行设置。如果找不到这个INI文件, 将会导致不能访问数据库。通常情况下,INI文件的文件名和应用程序的名称相同,所以如果没有指明,VB的程序会在Windows子目录中去找和应用程序同名的INI文件。可以使用VB中的SetDataAccessOptions语句来设置INI文件。
SetDataAccessOptions语句的用法如下:SetDataAccessOptions 1 ,IniFileName其中IniFileName参数指明的是INI文件的带路径的文件名。值得注意的是,当应用程序找不到这个INI文件时,或在调用 OpenDataBase函数时对其Connect参数值没有设定为VB规定的标准值,如对FoxPro 25格式设定为了" FoxPro;"(应为" FoxPro 25; "),或者没有安装相应的ISAM驱动程序,则此时VB会显示一条错误信息" Not Found Installable ISAM "。通常,INI文件在应用程序分发出去以前已经生成,或者在安装时动态生成,也可以在应用程序中自己生成。 通常这种 INI文件中有" [Options]"、"[ISAM]"、" [Installed ISAMs]"、"[FoxPro ISAM]"、"[dBASE ISAM] " 、" [Paradox ISAM] "等设置段,对于一个完整的应用程序则还应有一个属于应用 程序自己的设置段如" [MyDB]”。可在其中设置DataType、Server、DataBase、 OpenOnStartup、DisplaySQL、QueryTimeOut等较为重要的数据库参数,并以此限定应用程序一般的运行环境。 Windows API接口函数在Kernelexe动态链接库中提供了一个OSWritePrivateProfileString函数,此函数能按Windows下配置文件(INI)的书写格式写入信息。
在通常情况下,应用程序还需要在运行时读取配置文件内相关项的参数。比如PageTimeOut(页加锁超时时限)、MaxBufferSize(缓冲区大小)、LockRetry(加锁失败时重试次数)等参数,通过对这些参数的读取对应用程序运行环境的设定、潜在错误的捕获等均会有很大的改善。
三 、数据存取对象变量对外来数据库编程的方法及其实例在VB专业版数据库编程的三种方法中,第二种-使用数据库存取对象变量(DAO)的方法最具有功能强大、灵活的特点。 它能够在程序中存取ODBC 20的管理函数;可以控制多种记录集类型:Dynaset,Snapshot 及Table记录集合对象;可以存储过程和查询动作;可以存取数据库集合对象,例如 TableDefs,Fields,Indexes及QueryDefs;具有真正的事物处理能力。因而,这种方法对数据库处理的大多数情况都非常适用。
由于VB中的记录集对象与所使用的数据库格式及类型是相互独立的,所以在非Access数据库中也可以使用数据库存取对象变量的方法。因而 对FoxPro等外来数据库而言,使用数据库存取对象变量的方法同样也是一种最佳的选择。 有一点需要注意的是,VB的标准版中仅能使用数据控件(Data Control)对数据库中的记录进行访问,主要的数据库存取对象中也仅有Database、Dynaset对象可通过数据控件的属 性提供,其它的重要对象如TableDef、Field、Index、QueryDef、Snapshot、Table等均不能在VB的标准版中生成,所以使用数据存取对象变量的方法只能用VB 30以上的专业版。
不同的计算机安装SQL的连接是不同的
关于连接总结如下:
ADODB编码连接字的实例
VB中,关于SQL数据库的连接是比较复杂的,但也有一个可以参考的学习思路,方法如下。
1、建立数据库链接
在工具条中,有一个“数据视图窗口”的工具,用它可以建立各种数据库的链接。建立链接的过程:
点击“数据视图窗口”,出现“数据视图”窗体,点击选中“数据链接”,按右键,点击“添加数据链接”,出现“数据链接属性”窗口,有四个菜单:“提供程序”、“连接”、“高级”、“所有”。
选中“提供程序”菜单,这里有许多用于链接的驱动程序,选中“Microsoft OLE DB Provider for SQL Server”,点击“下一步”。“Microsoft OLE DB Provider for SQL Server”是真正的SQL数据库连接字用的驱动程序。
当选中“Microsoft OLE DB Provider for SQL Server”,点击“下一步”,则自动进入“连接”窗体界面。这个“连接”窗体界面的内容,随前面选取的驱动程序而定。
因为前面选择的是“Microsoft OLE DB Provider for SQL Server”,所以,“连接”窗体的主要内容就是直接访问SQL数据库的相关内容的设置,如下:
在“……服务器名称”一栏中怎么选择呢如SQL数据库服务器安装时是选择当地默认的实例,即以本地计算机名代替的服务器,则此处应填写的内容是:(local),或者是:本地的计算机名。估计,非本地的则可填写:服务器的IP地址或服务器名称。
在“输入登录服务器的信息”一栏中怎么选择呢当选择“使用指定的用户名和密码”一项时,用户名与密码是在SQL服务器安装时选定的内容(值)。若不用密码及用户名登入,则连接字的密码应代之为:Integrate Security=SSPI,表示用“Windows NT 集成安全设置”之意,SQL2005是用这一项的。但实际的ADODB的连接字是不能用这个NT打开的。
在“服务器上选择数据库”一栏中怎么选择呢当前面两项内容选择正确后,此处的内容是存在可选的,选中即可。
最后“测试连接”,显示成功。则在“数据视图”窗体的“数据链接”中将出现“Datelink1”,表示建立了以“Datelink1”为名的第1个数据库链接。当然也可以建立多个,名字将分别为“Datelink2”、“Datelink3”……
2、从已建立的数据库链接的属性中找连接字。
当选中“数据视图”窗体的“数据链接”,出现“Datelink1”,并选中“Datelink1”,按右键出现d出菜单,选中“属性”,点击,并可看见这个链接所用到的名字“Name”,“Name”对应的值,就是连接字的主要内容。只是缺少“Password= ”与“ ConnectionTimeout= ”,因此只要把这两向补齐,就是一个完整可用的ADODB的连接字,而且也适用于ADODC控件的字连接,即ConnectionString,但不需要双引号“”而已。
注意:在前面“数据链接属性”窗口的四个菜单“提供程序”、“连接”、“高级”、“所有”中,前面只重点介绍了“提供程序”与“连接”两项,实际上,“高级”就有ConnectionTimeout属性的选择项。而“提供程序”、“连接”、“高级”三项的选择结果,都在“所有”项中集中显示出来,而且“所有”项中,还有前三项不具有的其它的内容,因此,要注意察看与应用。
Command1_Click()
MeCaption = "NAME"
MeCls
Dim con As ADODBConnection (注:ADODC控件用的申明,不用ADODB,也不用Adodc。)
Dim rs As New ADODBRecordset
Set con = New ADODBConnection
conConnectionString = "Provider=SQLOLEDB1;Persist Security Info=False;User ID=sa;Initial Catalog=SQL数据库名;Data Sure=(local);Password=密码值(注:无时不选此项);Use Procedure for preplare=1;Auto Translate=True;Packet Size = 4096;Workstation ID=(local)(注:或是局域网的机器名);Use Encryption for Date=False;Tag With column collation when Possible=False"
conOpen
rsOpen "Select from SQL数据库表或视图名 ", con
MeAutoRedraw = True
rsMoveFirst
Dim ptr As Integer
For ptr = 0 To 20
Print rsFields(ptr)Name, 注:Name表示是表格的列名。
Next ptr
While Not rsEOF()
For ptr = 0 To 20
Print rsFields(ptr)Value, 注:Value表示是表格的数值。
Next ptr
rsMoveNext
Wend
End Sub
用ADODC方法更简单:
在窗口中建立:Command1,CAdodc1及DataDrid1,设置好CAdodc1的连接属性,见前所述
Command1_Click()
MeCaption = "NAME"
MeCls
Set DataDrid1=Adodc1
End Sub
1、打开代码窗口,添加引用:Imports SystemDataSqlClient。
2、输入以下代码:
“Public conn1 As SqlConnection = New SqlConnection _
("server=192168179; Initial Catalog= student; User ID= panqe;PWD=shentai768@")”,vb就已经成功连接sql数据库了。
3、代码详解:声明关键字Public(因为是全局变量,所以用Public 来声明)。
4、连接参数。
5、如果SQL 数据库就在本机,则用以下代码连接:
("server=; Integrated Security=False;Initial Catalog= student; User ID= panqe;PWD=shentai768@")。
6:如果代码太长,影响可读性,可以用空格加"_"后,回车换行。
以上就是关于怎么使用VB读取ACCESS数据库并显示全部的内容,包括:怎么使用VB读取ACCESS数据库并显示、想用VB编一个程序读取sql数据库中的内容、如何用vb连接sql server数据库等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)