数据库EI刊发浅析非Access数据库在VB中的编程应用(软件开发论文)

vb数据库编程  时间:2021-01-27  阅读:()

封面

《EI刊发浅析非Access数据库在VB中的编程应用》

Word格式可编辑可修改

精心整理放心阅读欢迎下载

文档信息

EI刊发浅析非Access数据库在VB中的编程应

目录

一、 VB数据库的体系结构具体的VB的数据库结构

二、使用非Access数据库时的参数设置及配置文件的参数读取如. . .

三、数据存取对象变量对外来数据库编程的方法及其实例在VB专业版. . .

(一) 、非Access数据库的新建及库结构的修改VB专业版中的数. . .

正文

关键字 VisualBasicAccess外来数据库数据库

正文

存取对象变量库结构作为一个功能较完备的Windows软件开发平台 Visual Basic专业版提供了对数据库应用的强大支持。尤其提供了使用数据控件和绑定控制项使用数据库存取对象变量(DataAccess Object Variable) 直接调用ODBC API接口函数等三种访问数据库的方法。对其标准内置的Ms Access数据库它可以提供不弱于专业数据库软件的支持可以进行完整的数据库维护、操作及其事务处理。在VB中将非Ac ces s数据库称为外来数据库。对于FoxPro、 dBASE、 Paradox等外来数据库。虽然借助VB的Data

Manager能够对这些数据库进行NEW、 OPEN、 DES I GN、 DELETE等操作但在应用程序的运行状态中并不能从底层真正实现这些功能。本文从使用数据库存取对象变量的方法出发实现了非Access格式数据库(以FoxPro数据库为例)的建新库、拷贝数据库结构、动态调入等操作 阐述了从编程技巧上弥补VB对这些外来数据库支持不足的可行性。

一、 VB数据库的体系结构具体的VB的数据库结构。

VB数据库的核心结构是所谓的MicroSoft JET数据库引擎 JET引擎的作用就像是一块"面板"在其上可以插入多种ISAM(IndexedSequential Access Method即索引顺序存取方法)数据驱动程序。JET引擎为Access格式数据库提供了直接的内部(bui ld-in)支持这就是VB对Ac ces s数据库具有丰富支持的真正原因。

VB专业版中提供了FoxPro、 dBASE(或Xbase) 、 Paradox、 Btr ieve等数据库的I SAM驱动程序这就使得VB能支持这些数据库格式。另外其他的许多兼容ISAM的驱动程序也可以通过从厂商的售后服务得到。因而从理论上说 VB能支持所有兼容I S AM的数据库格式(前提是只需获得这些数据库的ISAM驱动接口程序)

由上可见 Ms JET引擎实质上提供了一个符合AI标准的语法分析器;为查询结果集的使用而提供的内存管理功能;同所支持的数据库的外部接口;为应用代码提供的内部接口。实际上在VB中从一种数据库类型转化为另一种数据库类型几乎不需要或只需要很少的代码修

改。而且尽管dBASE、 Paradox本身的DDL (Data DefinitionLanguage 即数据定义语言)和DML(Data Manipulation Language即数据操纵语言)是非结构化查询的但它们仍然可以使用VB的S QL语句和JET引擎来操纵。

从VB的程序代码的角度来看 ODBC I SAM驱动程序以及M sAccess数据库的整个外部结构够可以统一为一个一致的编程接口。也即是说提供给VB应用程序员的记录集对象视图同所使用的数据库格式及类型是相互独立的。即对FoxPro等数据库仍然可以使用众多的数据库存取对象变量这就为非Access数据库的访问提供了最重要的方法。

二、使用非Access数据库时的参数设置及配置文件的参数读取如果在VB的程序中使用了数据库的操作将应用程序生成EXE文件或打包生成安装程序后则必须提供一个配置(. INI)文件在INI文件中可以对不同类型的数据库进行设置。如果找不到这个INI文件 将会导致不能访问数据库。通常情况下 INI文件的文件名和应用程序的名称相同所以如果没有指明 VB的程序会在Windows子目录中去找和应用程序同名的INI文件。可以使用VB中的SetDataAccessOptio语句来设置INI文件。

SetDataAccessOptio语句的用法如下 SetDataAccessOptio 1 IniFi leName其中IniFi l eName参数指明的是INI文件的带路径的文件名。值得注意的是 当应用程序找不到这个INI文件时或在调用OpenDataBase函数时对其Connect参数值没有设定为VB规定的标准

值如对FoxPro格式设定为了" FoxPro;"(应为" FoxPro ; ") 或者没有安装相应的I SAM驱动程序则此时VB会显示一条错误信息" No tFound Itallable ISAM "。通常 INI文件在应用程序分发出去以前已经生成或者在安装时动态生成也可以在应用程序中自己生成。 通常这种INI文件中有" [Optio]"、 "[ISAM]"、 " [Italled ISAMs]"、"[FoxPro ISAM]"、 "[dBASE ISAM] " 、 " [Paradox ISAM] "等设置段对于一个完整的应用程序则还应有一个属于应用程序自己的设置段如" [MyDB]” 。可在其中设置DataType、 Server、 DataBase、OpenOtartup、 DisplaySQL、 QueryTimeOut等较为重要的数据库参数并以此限定应用程序一般的运行环境。 Windows API接口函数在动态链接库中提供了一个OSWritePrivateProfi leString函数此函数能按Windows下配置文件(. INI)的书写格式写入信息。

在通常情况下应用程序还需要在运行时读取配置文件内相关项的参数。 比如PageTimeOut(页加锁超时时限) 、 MaxBuff eize(缓冲区大小) 、 LockRetry(加锁失败时重试次数)等参数通过对这些参数的读取对应用程序运行环境的设定、潜在错误的捕获等均会有很大的改善。

设此应用程序的配置文件为则具体过程如下 Fun t i o n

GetINIString$( Byval Fname$  Byval szItem$  ByvalszDeFault$ ) '此自定义子函数实现INI文件内设置段内参数的读取Dim Tmp As String x As Integer Tmp = String( 2048 32 ) x =OSGetPrivateProf ileString(Fname$ szItem$  szDefault$

Tmp Len(Tmp)  " " ) Get INIStr ing = Mi d$( Tmp 1 x )

EndFunction以下这些函数的声明可写在模块文件内且每个函数的声明必须在一行内Declare Function OSGetPrivateProfileString% Lib"Kernel" Alias "GetPrivateProfi leString" (ByVal AppName$ByVal KeyName$ ByVal keydefault$ ByVal Returtring$ByVal NumBytes As Integer ByVal FileName$) Declare FunctionOSWritePrivateProfileString% Lib "Kernel" Alias

"WritePrivateProfileString" (ByVal AppName$ ByVal

KeyName$ ByVal keydefault$ ByVal Fi leName$) DeclareFunction OSGetWindowsDirectory% Lib "Kernel" Alias

"GetWindowsDirectory" (ByVal a$ ByVal b%) Sub Form1_Load( )Dim st As String Dim x As Integer Dim tmp As String tmp =String$( 255 32 ) '

INI文件内为各种数据库格式指明已安装的相应ISAM驱动程序x =OSWritePrivateProfileString(" Itallable ISAMS" "Paradox """ "" ) x = OSWritePrivateProfileString( "Itallable

ISAMS" "dBASE III" "" "" ) x =

OSWritePrivateProfileString( "Itallable ISAMS" "dBASE IV""" "" ) x = OSWritePrivateProfileString( "Itallable

ISAMS" "FoxPro " "" "" ) x =

OSWritePrivateProfileString( "Itallable ISAMS" "FoxPro """ "" ) x = OSWritePrivateProfileString( "Itallable

ISAMS" "Btrieve" "" "" ) x =

OSWritePrivateProfileString( "dBase ISAM" "Deleted"

"On" "" ) '指明INI文件的位置x =

OSGetWindowsDirectory( tmp 255 ) st = Mid$( tmp 1 x )SetDataAccessOption 1 st + "/" '获得INI文件一些参数gwMaxGr idRows = Val (GetINIString( " "  "MaxRows" "250" ))glQueryTimeout = Val(GetINIString( " "  "QueryTimeout""5" )) glLoginTimeout = Val(GetINIString( " " 

"LoginTimeout" "20" )) End Sub

三、数据存取对象变量对外来数据库编程的方法及其实例在VB专业版数据库编程的三种方法中第二种-使用数据库存取对象变量(DAO)的方法最具有功能强大、灵活的特点。 它能够在程序中存取ODBC的管理函数;可以控制多种记录集类型 Dynaset Snapshot及Table记录集合对象;可以存储过程和查询动作;可以存取数据库集合对象例如TableDefs Fields Indexes及QueryDefs;具有真正的事物处理能力。因而这种方法对数据库处理的大多数情况都非常适用。

由于VB中的记录集对象与所使用的数据库格式及类型是相互独立的所以在非Access数据库中也可以使用数据库存取对象变量的方法。因而对FoxPro等外来数据库而言使用数据库存取对象变量的方法同样也是一种最佳的选择。 有一点需要注意的是 VB的标准版中仅能使用数据控件(Data Control)对数据库中的记录进行访问主要的数据库存取对象中也仅有Database、 Dynaset对象可通过数据控件的属性提供其它的重要对象如TableDef、 Field、 Index、

QueryDef、 Snapshot、 Table等均不能在VB的标准版中生成所以使用数据存取对象变量的方法只能用VB以上的专业版。

(一) 、非Acc es s数据库的新建及库结构的修改VB专业版中的数据库存取对象变量可以分为两类一类用于数据库结构的维护和管理另一类用于数据的存取。其中表示数据库结构时可以使用下面的对象

DataBase、 TableDef、 Field、 Index 以及三个集合

(Collection)  TableDefs、 Fields和Indexes 。每一个集合都是由若干个对象组成的这些数据对象的集合可以完全看作是一个数组并按数组的方法来调用。一旦数据库对象建立后就可以用它对数据库的结构进行修改和数据处理。对于非Access数据库大部分都是对应于一个目录所以可以使用VB的MkD i r语句先生成一个目录亦即新建一个数据库。而每一个非Access数据库文件可看作是此目录下的一个数据表(Tab l e) 但实际上它们是互相独立的。

下面是新建一个FoxPro格式数据库的程序实例。

Sub CreateNew ( ) Dim Db1 As database  Td As TableDefsDim T1 As New Tabledef  F1 As New Field  F2 As New

Field  F3 As New Field Dim Ix1 As New Index Dim Path AsString Cot DB_TEXT = 10  DB_INTEGER = 3 ChDir "/" Path$ =InputBox( "请输入新路径名 " "输入对话框" ) MkDir Path$ '新建一个子目录Set Db1 = OpenDatabase(Path$ True False

"FoxPro ;") Set Td = ="MyDB" '新建一个数据表数据表名为MyDB= "Name"  = DB_TEXT  = 20 = "C l a s s"  = DB_TEXT  = 20= "Grade"  = DB_INTEGER F1 '向数据表中添加这些字段F2。

小编推荐同类有些的电子论文 软件工程师前景好吗来杭州别耽误你软件学院

还剩下1个月摆布的时??间2014年就即将过去了大概还有一小部门人在高考之后照旧一蹶不振对于做一切工作进修一切学问都提不起乐趣。感觉本人高考都考欠好文化成就乌烟瘴气进修工具起来出格笨想学点什么也担忧本人学不会 即便处置游戏软件开辟行业高薪在向本人招手。

“EI刊发浅析非Access数据库在VB中的编程应用”文档源于网络本人编辑整理。本着保护作者知识产权的原则仅供学习交流请勿商用。如有侵犯作者权益请作者留言或者发站内信息联系本人我将尽快删除。谢谢您的阅读与下载

Virtono:€23.7/年,KVM-2GB/25GB/2TB/洛杉矶&达拉斯&纽约&罗马尼亚等

Virtono最近推出了夏季促销活动,为月付、季付、半年付等提供9折优惠码,年付已直接5折,而且下单后在LET回复订单号还能获得双倍内存,不限制付款周期。这是一家成立于2014年的国外VPS主机商,提供VPS和服务器租用等产品,商家支持PayPal、信用卡、支付宝等国内外付款方式,可选数据中心包括罗马尼亚、美国洛杉矶、达拉斯、迈阿密、英国和德国等。下面列出几款VPS主机配置信息,请留意,下列配置中...

racknerd新上架“洛杉矶”VPS$29/年,3.8G内存/3核/58gSSD/5T流量

racknerd发表了2021年美国独立日的促销费用便宜的vps,两种便宜的美国vps位于洛杉矶multacom室,访问了1Gbps的带宽,采用了solusvm管理,硬盘是SSDraid10...近两年来,racknerd的声誉不断积累,服务器的稳定性和售后服务。官方网站:https://www.racknerd.com多种加密数字货币、信用卡、PayPal、支付宝、银联、webmoney,可以付...

Hostodo:$34.99/年KVM-2.5GB/25G NVMe/8TB/3个数据中心

Hostodo在九月份又发布了两款特别套餐,开设在美国拉斯维加斯、迈阿密和斯波坎机房,基于KVM架构,采用NVMe SSD高性能磁盘,最低1.5GB内存8TB月流量套餐年付34.99美元起。Hostodo是一家成立于2014年的国外VPS主机商,主打低价VPS套餐且年付为主,基于OpenVZ和KVM架构,美国三个地区机房,支持支付宝或者PayPal、加密货币等付款。下面列出这两款主机配置信息。CP...

vb数据库编程为你推荐
软银赛富民信排在投资公司第几滴滴软银合资最适合跑滴滴的是什么车?10万一下的车?苹果x和xr哪个好苹果x苹果xr哪个好莫代尔和纯棉哪个好莫代尔和纯棉内裤哪个好?苹果手机助手哪个好苹果手机助手哪个好核芯显卡与独立显卡哪个好核芯显卡和独立显卡有什么区别?最好的是哪个?电陶炉和电磁炉哪个好电磁炉和电陶炉哪个好? 电磁炉和电陶炉的具体区别手机杀毒哪个好手机杀毒软件哪个最好用dnf魔枪士转职哪个好dnf魔枪士转职哪个适合平民玩电动牙刷哪个好什么品牌的电动牙刷比较好?
高防服务器租用 locvps 韩国加速器 vmsnap3 ibrs 魔兽世界台湾服务器 免费网站申请 免费个人空间 双11秒杀 metalink 33456 电信主机 支持外链的相册 空间登入 路由跟踪 韩国代理ip 独立主机 游戏服务器出租 中国电信测速网站 广州虚拟主机 更多