麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

非Access數(shù)據(jù)庫(kù)在VB中的編程及應(yīng)用

2019-11-18 17:35:37
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
摘要VisualBasic有著強(qiáng)大的數(shù)據(jù)庫(kù)存取能力,不僅能夠直接支持Msaccess數(shù)據(jù)庫(kù),而且通過(guò)其內(nèi)部安裝的ISAM驅(qū)動(dòng)程序使它能間接支持FoxPRo、dBASE等外來(lái)數(shù)據(jù)庫(kù)。本文不僅從VB數(shù)據(jù)庫(kù)體系結(jié)構(gòu)的角度探討了VB對(duì)這些外來(lái)數(shù)據(jù)庫(kù)的支持,還結(jié)合了一些實(shí)例具體闡述了使用數(shù)據(jù)庫(kù)存取對(duì)象變量的方法實(shí)現(xiàn)這些外來(lái)數(shù)據(jù)庫(kù)的新建、庫(kù)結(jié)構(gòu)修改、顯示及其運(yùn)行環(huán)境設(shè)置。關(guān)鍵詞VisualBasicAccess外來(lái)數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)存取對(duì)象變量庫(kù)結(jié)構(gòu) 作為一個(gè)功能較完備的Windows軟件開(kāi)發(fā)平臺(tái),VisualBasic專(zhuān)業(yè)版提供了對(duì)數(shù)據(jù)庫(kù)應(yīng)用的強(qiáng)大支持。尤其提供了使用數(shù)據(jù)控件和綁定控制項(xiàng),使用數(shù)據(jù)庫(kù)存取對(duì)象變量(DataAccessObjectVariable),直接調(diào)用ODBC2.0API接口函數(shù)等三種訪問(wèn)數(shù)據(jù)庫(kù)的方法。對(duì)其標(biāo)準(zhǔn)內(nèi)置的MsAccess數(shù)據(jù)庫(kù),它可以提供不弱于專(zhuān)業(yè)數(shù)據(jù)庫(kù)軟件的支持,可以進(jìn)行完整的數(shù)據(jù)庫(kù)維護(hù)、操作及其事務(wù)處理。在VB中,將非Access數(shù)據(jù)庫(kù)稱(chēng)為外來(lái)數(shù)據(jù)庫(kù)。對(duì)于FoxPro、dBASE、Paradox等外來(lái)數(shù)據(jù)庫(kù)。雖然借助VB的DataManager能夠?qū)@些數(shù)據(jù)庫(kù)進(jìn)行NEW、OPEN、DESIGN、DELETE等操作,但在應(yīng)用程序的運(yùn)行狀態(tài)中并不能從底層真正實(shí)現(xiàn)這些功能。本文從使用數(shù)據(jù)庫(kù)存取對(duì)象變量的方法出發(fā),實(shí)現(xiàn)了非Access格式數(shù)據(jù)庫(kù)(以FoxPro數(shù)據(jù)庫(kù)為例)的建新庫(kù)、拷貝數(shù)據(jù)庫(kù)結(jié)構(gòu)、動(dòng)態(tài)調(diào)入等操作,闡述了從編程技巧上彌補(bǔ)VB對(duì)這些外來(lái)數(shù)據(jù)庫(kù)支持不足的可行性。

一、VB數(shù)據(jù)庫(kù)的體系結(jié)構(gòu)具體的VB的數(shù)據(jù)庫(kù)結(jié)構(gòu)請(qǐng)先看下圖??梢?jiàn)VB數(shù)據(jù)庫(kù)的核心結(jié)構(gòu)是所謂的MicroSoftJET數(shù)據(jù)庫(kù)引擎,JET引擎的作用就像是一塊“面板”,在其上可以插入多種ISAM(IndexedSequentialAccessMethod,即索引順序存取方法)數(shù)據(jù)驅(qū)動(dòng)程序。JET引擎為Access格式數(shù)據(jù)庫(kù)提供了直接的內(nèi)部(build-in)支持,這就是VB對(duì)Access數(shù)據(jù)庫(kù)具有豐富支持的真正原因。VB專(zhuān)業(yè)版中提供了FoxPro、dBASE(或Xbase)、Paradox、Btrieve等數(shù)據(jù)庫(kù)的ISAM驅(qū)動(dòng)程序,這就使得VB能支持這些數(shù)據(jù)庫(kù)格式。另外,其他的許多兼容ISAM的驅(qū)動(dòng)程序也可以通過(guò)從廠商的售后服務(wù)得到。因而從理論上說(shuō),VB能支持所有兼容ISAM的數(shù)據(jù)庫(kù)格式(前提是只需獲得這些數(shù)據(jù)庫(kù)的ISAM驅(qū)動(dòng)接口程序)。由上可見(jiàn),MsJET引擎實(shí)質(zhì)上提供了:一個(gè)符合ANSI標(biāo)準(zhǔn)的語(yǔ)法分析器;為查詢(xún)結(jié)果集的使用而提供的內(nèi)存管理功能;同所支持的數(shù)據(jù)庫(kù)的外部接口;為應(yīng)用代碼提供的內(nèi)部接口。實(shí)際上,在VB中從一種數(shù)據(jù)庫(kù)類(lèi)型轉(zhuǎn)化為另一種數(shù)據(jù)庫(kù)類(lèi)型幾乎不需要或只需要很少的代碼修改。而且,盡管dBASE、Paradox本身的DDL(DataDefinitionLanguage,即數(shù)據(jù)定義語(yǔ)言)和DML(DataMangwMaxGridRows=Val(GetINIString(“MyDB.INI”,"MaxRows","250"))
glQueryTimeout=Val(GetINIString(“MyDB.INI”,"QueryTimeout","5"))
glLoginTimeout=Val(GetINIString(“MyDB.INI”,"LoginTimeout","20"))
EndSub

三、數(shù)據(jù)存取對(duì)象變量對(duì)外來(lái)數(shù)據(jù)庫(kù)編程的方法及其實(shí)例在VB專(zhuān)業(yè)版數(shù)據(jù)庫(kù)編程的三種方法中,第二種—使用數(shù)據(jù)庫(kù)存取對(duì)象變量(DAO)的方法最具有功能強(qiáng)大、靈活的特點(diǎn)。它能夠在程序中存取ODBC2.0的管理函數(shù);可以控制多種記錄集類(lèi)型:Dynaset,Snapshot及Table記錄集合對(duì)象;可以
存儲(chǔ)過(guò)程和查詢(xún)動(dòng)作;可以存取數(shù)據(jù)庫(kù)集合對(duì)象,例如TableDefs,F(xiàn)ields,Indexes及QueryDefs;具有真正的事物處理能力。因而,這種方法對(duì)數(shù)據(jù)庫(kù)處理的大多數(shù)情況都非常適用。由于VB中的記錄集對(duì)象與所使用的數(shù)據(jù)庫(kù)格式及類(lèi)型是相互獨(dú)立的,所以在非Access數(shù)據(jù)庫(kù)中也可以使用數(shù)據(jù)庫(kù)存取對(duì)象變量的方法。因而對(duì)FoxPro等外來(lái)數(shù)據(jù)庫(kù)而言,使用數(shù)據(jù)庫(kù)存取對(duì)象變量的方法同樣也是一種最佳的選擇。有一點(diǎn)需要注意的是,VB的標(biāo)準(zhǔn)版中僅能使用數(shù)據(jù)控件(DataControl)對(duì)數(shù)據(jù)庫(kù)中的記錄進(jìn)行訪問(wèn),主要的數(shù)據(jù)庫(kù)存取對(duì)象中也僅有Database、Dynaset對(duì)象可通過(guò)數(shù)據(jù)控件的屬性提供,其它的重要對(duì)象如TableDef、Field、Index、QueryDef、Snapshot、Table等均不能在VB的標(biāo)準(zhǔn)版中生成,所以使用數(shù)據(jù)存取對(duì)象變量的方法只能用VB3.0以上的專(zhuān)業(yè)版。
(一)、非Access數(shù)據(jù)庫(kù)的新建及庫(kù)結(jié)構(gòu)的修改VB專(zhuān)業(yè)版中的數(shù)據(jù)庫(kù)存取對(duì)象變量可以分為兩類(lèi),一類(lèi)用于數(shù)據(jù)庫(kù)結(jié)構(gòu)的維護(hù)和管理,另一類(lèi)用于數(shù)據(jù)的存取。其中表示數(shù)據(jù)庫(kù)結(jié)構(gòu)時(shí)可以使用下面的對(duì)象:
DataBase、TableDef、Field、Index,以及三個(gè)集合(Collection):TableDefs、Fields和Indexes。
每一個(gè)集合都是由若干個(gè)對(duì)象組成的,這些數(shù)據(jù)對(duì)象的集合可以完全看作是一個(gè)數(shù)組,并按數(shù)組的方法來(lái)調(diào)用。一旦數(shù)據(jù)庫(kù)對(duì)象建立后,就可以用它對(duì)數(shù)據(jù)庫(kù)的結(jié)構(gòu)進(jìn)行修改和數(shù)據(jù)處理。對(duì)于非Access數(shù)據(jù)庫(kù),大部分都是對(duì)應(yīng)于一個(gè)目錄,所以可以使用VB的MkDir語(yǔ)句先生成一個(gè)目錄,亦即新建一個(gè)數(shù)據(jù)庫(kù)。而每一個(gè)非Access數(shù)據(jù)庫(kù)文件可看作是此目錄下的一個(gè)數(shù)據(jù)表(Table),但實(shí)際上它們是互相獨(dú)立的。下面是新建一個(gè)FoxPro2.5格式數(shù)據(jù)庫(kù)的程序?qū)嵗?br>SubCreateNew()
DimDb1Asdatabase,TdAsTableDefs
DimT1AsNewTabledef,F(xiàn)1AsNewField,F(xiàn)2AsNewField,F(xiàn)3AsNewField
DimIx1AsNewIndex
DimPathAsString
ConstDB_TEXT=10,DB_INTEGER=3ChDir"/"
Path$=InputBox("請(qǐng)輸入新路徑名:","輸入對(duì)話(huà)框")
MkDirPath$'新建一個(gè)子目錄
SetDb1=OpenDatabase(Path$,True,False,"FoxPro2.5;")
SetTd=Db1.TableDefs
T1.Name="MyDB"'新建一個(gè)數(shù)據(jù)表,數(shù)據(jù)表名為MyDB
F1.Name="Name",F(xiàn)1.Type=DB_TEXT,F(xiàn)1.Size=20F2.Name="Class",F(xiàn)2.Type=DB_TEXT,F(xiàn)2.Size=20F3.Name="Grade",F(xiàn)3.Type=DB_INTEGERT1.Fields.AppendF1'向數(shù)據(jù)表中添加這些字段
T1.Fields.AppendF2->


發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 国产精品美女一区二区 | 国产一国产精品一级毛片 | 伊人二本二区 | 色综合视频 | 亚洲一级电影在线观看 | 精品国产一区二区三 | 久久久噜噜噜久久熟有声小说 | 国产精品啪 | 成人毛片网 | 国产精品久久久麻豆 | 久草在线观看福利视频 | 久久久久久久久久91 | 免费色片 | 欧美黄 片免费观看 | 午夜精品老牛av一区二区三区 | av在线免费电影 | 中国产一级毛片 | 91 视频网站| 一区二区三区在线视频观看58 | 免费视频aaa | 久久亚洲成人 | 久久99精品国产 | 久久久在线免费观看 | 国产精品成人久久 | 亚洲欧美国产高清 | 国产成人高清成人av片在线看 | 久久久国产一区二区三区 | av在线免费观看不卡 | 成人黄视频在线观看 | 久久福利在线 | 亚洲综合色视频在线观看 | 久久久久久久一区二区三区 | 曰韩一级片 | wwwav国产 | 亚洲午夜影院在线观看 | 黄色大片大毛片 | 黄在线| 一区二区三区欧美在线 | 国产91免费看 | 成人国产综合 | 欧美精品久久久久久久久老牛影院 |