资源描述:
《非access数据库在vb中的编程及应用 》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、非Access数据库在VB中的编程及应用摘要VisualBasic有着强大的数据库存取能力,不仅能够直接支持MsAccess数据库,而且通过其内部安装的ISAM驱动程序使它能间接支持FoxPro、dBASE等外来数据库。本文不仅从VB数据库体系结构的角度探讨了VB对这些外来数据库的支持,还结合了一些实例具体阐述了使用数据库存取对象变量的方法实现这些外来数据库的新建、库结构修改、显示及其运行环境设置。关键词VisualBasicAccess,外来数据库,数据库正文存取对象变量库结构作为一个功能较完备的驱动程序,则此时VB会显示一条错误信息"NotFoundInstallableISA
2、M"。通常,INI文件在应用程序分发出去以前已经生成,或者在安装时动态生成,也可以在应用程序中自己生成。通常这种INI文件中有"[Options]"、"[ISAM]"、"[InstalledISAMs]"、"[FoxProISAM]"、"[dBASEISAM]"、"[ParadoxISAM]"等设置段,对于一个完整的应用程序则还应有一个属于应用程序自己的设置段如"[MyDB]”。可在其中设置DataType、Server、DataBase、OpenOnStartup、DisplaySQL、QueryTimeOut等较为重要的数据库参数,并以此限定应用程序一般的运行环境。axBuff
3、erSize(缓冲区大小)、LockRetry(加锁失败时重试次数)等参数,通过对这些参数的读取对应用程序运行环境的设定、潜在错误的捕获等均会有很大的改善。设此应用程序的配置文件为MyDB.INI,则具体过程如下:FuntionGetINIString$(ByvalFname$,ByvalszItem$,ByvalszDeFault$)'此自定义子函数实现INI文件内设置段内参数的读取DimTmpAsString,xAsIntegerTmp=String(2048,32)x=OSGetPrivateProfileString(Fname$,szItem$,szDefault$,Tm
4、p,Len(Tmp),"MyDB.INI")GetINIString=Mid$(Tmp,1,x)EndFunction以下这些函数的声明可写在模块文件内,且每个函数的声明必须在一行内DeclareFunctionOSGetPrivateProfileString%Lib"Kernel"Alias"GetPrivateProfileString"(ByValAppName$,ByValKeyName$,ByValkeydefault$,ByValReturnString$,ByValNumBytesAsInteger,ByValFileName$)DeclareFunctionOS驱
5、动程序x=OSS","Paradox3.X","PDX110.DLL","MyDB.INI")x=OSS","dBASEIII","XBS110.DLL","MyDB.INI")x=OSS","dBASEIV","XBS110.DLL","MyDB.INI")x=OSS","FoxPro2.0","XBS110.DLL","MyDB.INI")x=OSS","FoxPro2.5","XBS110.DLL","MyDB.INI")x=OSS","Btrieve","BTRV110.DLL","MyDB.INI")x=OS","Deleted","On","MyDB.INI")'指明I
6、NI文件的位置x=OSGetid$(tmp,1,x)SetDataAccessOption1,st+"mydb.ini"'获得INI文件一些参数geout=Val(GetINIString("MyDB.INI","QueryTimeout","5"))glLoginTimeout=Val(GetINIString("MyDB.INI","LoginTimeout","20"))EndSub 三、数据存取对象变量对外来数据库编程的方法及其实例在VB专业版数据库编程的三种方法中,第二种-使用数据库存取对象变量(DAO)的方法最具有功能强大、灵活的特点。它能够在程序中存取ODBC2.0
7、的管理函数;可以控制多种记录集类型:Dynaset,Snapshot及Table记录集合对象;可以存储过程和查询动作;可以存取数据库集合对象,例如TableDefs,Fields,Indexes及QueryDefs;具有真正的事物处理能力。因而,这种方法对数据库处理的大多数情况都非常适用。由于VB中的记录集对象与所使用的数据库格式及类型是相互独立的,所以在非Access数据库中也可以使用数据库存取对象变量的方法。因而对FoxPro等外来数据库而言,使用数据库存取对象变