日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國內(nèi)最全I(xiàn)T社區(qū)平臺 聯(lián)系我們 | 收藏本站
阿里云優(yōu)惠2
您當(dāng)前位置:首頁 > 數(shù)據(jù)庫 > access > 非Access數(shù)據(jù)庫在VB中的編程及應(yīng)用

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

來源:程序員人生   發(fā)布時間:2013-12-29 13:01:02 閱讀次數(shù):3861次

存取對象變量庫結(jié)構(gòu)作為一個功能較完備的Windows軟件開發(fā)平臺,Visual Basic專業(yè)版提供了對數(shù)據(jù)庫應(yīng)用的強(qiáng)大支持。尤其提供了使用數(shù)據(jù)控件和綁定控制項(xiàng),使用數(shù)據(jù)庫存取對象變量(Data Access Object Variable),直接調(diào)用ODBC 2.0 API接口函數(shù)等三種訪問數(shù)據(jù)庫的方法。對其標(biāo)準(zhǔn)內(nèi)置的Ms Access數(shù)據(jù)庫,它可以提供不弱于專業(yè)數(shù)據(jù)庫軟件的支持,可以進(jìn)行完整的數(shù)據(jù)庫維護(hù)、操作及其事務(wù)處理。在VB中,將非Access數(shù)據(jù)庫稱為外來數(shù)據(jù)庫。對于FoxPro、dBASE、Paradox等外來數(shù)據(jù)庫。雖然借助VB的Data Manager 能夠?qū)@些數(shù)據(jù)庫進(jìn)行NEW、OPEN、DESIGN、DELETE等操作,但在應(yīng)用程序的運(yùn)行狀態(tài)中并不能從底層真正實(shí)現(xiàn)這些功能。本文從使用數(shù)據(jù)庫存取對象變量的方法出發(fā),實(shí)現(xiàn)了非Access格式數(shù)據(jù)庫(以FoxPro數(shù)據(jù)庫為例)的建新庫、拷貝數(shù)據(jù)庫結(jié)構(gòu)、動態(tài)調(diào)入等操作,闡述了從編程技巧上彌補(bǔ)VB對這些外來數(shù)據(jù)庫支持不足的可行性 。

  一、VB數(shù)據(jù)庫的體系結(jié)構(gòu)具體的VB的數(shù)據(jù)庫結(jié)構(gòu)。

  VB數(shù)據(jù)庫的核心結(jié)構(gòu)是所謂的MicroSoft JET數(shù)據(jù)庫引擎,JET引擎的作用就像是一塊"面板",在其上可以插入多種ISAM(Indexed Sequential Access Method,即索引順序存取方 法) 數(shù)據(jù)驅(qū)動程序。JET引擎為Access格式數(shù)據(jù)庫提供了直接的內(nèi)部(build-in)支持,這就是VB對Access數(shù)據(jù)庫具有豐富支持的真正原因。

  VB專業(yè)版中提供了FoxPro、dBASE(或 Xbase)、Paradox、Btrieve等數(shù)據(jù)庫的ISAM驅(qū)動程序,這就使得VB能支持這些數(shù)據(jù)庫格 式。另外,其他的許多兼容ISAM的驅(qū)動程序也可以通過從廠商的售后服務(wù)得到。因而從理論上說,VB能支持所有兼容ISAM的數(shù)據(jù)庫格式(前提是只需獲得這些數(shù)據(jù)庫的ISAM驅(qū)動接口程序)。

  由上可見,Ms JET引擎實(shí)質(zhì)上提供了:一個符合ANSI標(biāo)準(zhǔn)的語法分析器;為查詢結(jié)果集的使用而提供的內(nèi)存管理功能;同所支持的數(shù)據(jù)庫的外部接口;為應(yīng)用代碼提供的內(nèi)部接口。實(shí)際上,在VB中從一種數(shù)據(jù)庫類型轉(zhuǎn)化為另一種數(shù)據(jù)庫類型幾乎不需要或只需要很少的代碼修改。而且,盡管dBASE、Paradox本身的DDL (Data Definition Language,即數(shù)據(jù)定義語言)和DML(Data Manipulation Language,即數(shù)據(jù)操縱語言)是非結(jié)構(gòu)化查詢的,但它們?nèi)匀豢梢允褂肰B的SQL語句和JET引擎來操縱。

  從VB的程序代碼的角度來看,ODBC,ISAM驅(qū)動程序以及Ms Access數(shù)據(jù)庫的整個外部結(jié)構(gòu)夠可以統(tǒng)一為一個一致的編程接口。也即是說,提供給VB應(yīng)用程序員的記錄集對象視圖同所使用的數(shù)據(jù)庫格式及類型是相互獨(dú)立的。即對FoxPro等數(shù)據(jù)庫仍然可以使用眾多的數(shù)據(jù)庫存取對象變量,這就為非Access數(shù)據(jù)庫的訪問提供了最重要的方法。  

  二 、使用非Access數(shù)據(jù)庫時的參數(shù)設(shè)置及配置文件的參數(shù)讀取如果在VB的程序中使用了數(shù)據(jù)庫的操作,將應(yīng)用程序生成EXE文件或打包生成安裝程序后,則必須提供一個配置 (.INI)文件,在INI文件中可以對不同類型的數(shù)據(jù)庫進(jìn)行設(shè)置。如果找不到這個INI文件, 將會導(dǎo)致不能訪問數(shù)據(jù)庫。通常情況下,INI文件的文件名和應(yīng)用程序的名稱相同,所以如果沒有指明,VB的程序會在Windows子目錄中去找和應(yīng)用程序同名的INI文件。可以使用VB中的SetDataAccessOptions語句來設(shè)置INI文件。

  SetDataAccessOptions語句的用法如下:SetDataAccessOptions 1 ,IniFileName其中IniFileName參數(shù)指明的是INI文件的帶路徑的文件名。值得注意的是,當(dāng)應(yīng)用程序找不到這個INI文件時,或在調(diào)用 OpenDataBase函數(shù)時對其Connect參數(shù)值沒有設(shè)定為VB規(guī)定的標(biāo)準(zhǔn)值,如對FoxPro 2.5格式設(shè)定為了" FoxPro;"(應(yīng)為" FoxPro 2.5; "),或者沒有安裝相應(yīng)的ISAM驅(qū)動程序,則此時VB會顯示一條錯誤信息" Not Found Installable ISAM "。通常,INI文件在應(yīng)用程序分發(fā)出去以前已經(jīng)生成,或者在安裝時動態(tài)生成,也可以在應(yīng)用程序中自己生成。 通常這種 INI文件中有" [Options]"、"[ISAM]"、" [Installed ISAMs]"、"[FoxPro ISAM]"、"[dBASE ISAM] " 、" [Paradox ISAM] "等設(shè)置段,對于一個完整的應(yīng)用程序則還應(yīng)有一個屬于應(yīng)用 程序自己的設(shè)置段如" [MyDB]”。可在其中設(shè)置DataType、Server、DataBase、 OpenOnStartup、DisplaySQL、QueryTimeOut等較為重要的數(shù)據(jù)庫參數(shù),并以此限定應(yīng)用程序一般的運(yùn)行環(huán)境。 Windows API接口函數(shù)在Kernel.exe動態(tài)鏈接庫中提供了一個OSWritePrivateProfileString函數(shù),此函數(shù)能按Windows下配置文件(.INI)的書寫格式寫入信息。

  在通常情況下,應(yīng)用程序還需要在運(yùn)行時讀取配置文件內(nèi)相關(guān)項(xiàng)的參數(shù)。比如PageTimeOut(頁加鎖超時時限)、MaxBufferSize(緩沖區(qū)大小)、LockRetry(加鎖失敗時重試次數(shù))等參數(shù),通過對這些參數(shù)的讀取對應(yīng)用程序運(yùn)行環(huán)境的設(shè)定、潛在錯誤的捕獲等均會有很大的改善。

  三 、數(shù)據(jù)存取對象變量對外來數(shù)據(jù)庫編程的方法及其實(shí)例在VB專業(yè)版數(shù)據(jù)庫編程的三種方法中,第二種-使用數(shù)據(jù)庫存取對象變量(DAO)的方法最具有功能強(qiáng)大、靈活的特點(diǎn)。 它能夠在程序中存取ODBC 2.0的管理函數(shù);可以控制多種記錄集類型:Dynaset,Snapshot 及Table記錄集合對象;可以存儲過程和查詢動作;可以存取數(shù)據(jù)庫集合對象,例如 TableDefs,F(xiàn)ields,Indexes及QueryDefs;具有真正的事物處理能力。因而,這種方法對數(shù)據(jù)庫處理的大多數(shù)情況都非常適用。

  由于VB中的記錄集對象與所使用的數(shù)據(jù)庫格式及類型是相互獨(dú)立的,所以在非Access數(shù)據(jù)庫中也可以使用數(shù)據(jù)庫存取對象變量的方法。因而 對FoxPro等外來數(shù)據(jù)庫而言,使用數(shù)據(jù)庫存取對象變量的方法同樣也是一種最佳的選擇。 有一點(diǎn)需要注意的是,VB的標(biāo)準(zhǔn)版中僅能使用數(shù)據(jù)控件(Data Control)對數(shù)據(jù)庫中的記錄進(jìn)行訪問,主要的數(shù)據(jù)庫存取對象中也僅有Database、Dynaset對象可通過數(shù)據(jù)控件的屬 性提供,其它的重要對象如TableDef、Field、Index、QueryDef、Snapshot、Table等均不能在VB的標(biāo)準(zhǔn)版中生成,所以使用數(shù)據(jù)存取對象變量的方法只能用VB 3.0以上的專業(yè)版。

 

生活不易,碼農(nóng)辛苦
如果您覺得本網(wǎng)站對您的學(xué)習(xí)有所幫助,可以手機(jī)掃描二維碼進(jìn)行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關(guān)閉
程序員人生
主站蜘蛛池模板: 99精品免费 | 最近中文字幕视频在线观看 | 黄色高清 | 一区二区三区在线 | 精品一区二区视频 | 中文字幕在线一区 | 一级性视频 | 国产精品一二 | 国内精品一区二区 | 国产一区二区成人在线 | 久久久精品一区二区 | 国产精品1区 | 国产精品亚洲一区二区三区在线观看 | 国产精品久久久久久久久久久久 | 懂色av蜜臀av粉嫩av分享吧 | 不卡在线一区二区 | 免费黄色网页 | 亚洲波多野 | 国产一区免费在线 | 中文字幕在线不卡 | 日本免费在线观看 | 亚洲影视一区 | 免费观看视频www | 国产在线视频网 | 久久久久久免费毛片 | 动漫一区二区 | 91九色在线播放 | 天天操,夜夜操 | 久久国产99 | 91精品网 | 国产美女久久 | 亚洲一区二区三区精品动漫 | 午夜黄色大片 | 久久国产一区二区 | 国产日产精品一区二区三区四区 | 日韩中文字幕av | 99男女国产精品免费视频 | 一区二区三区国产片 | 一区久久 | 1024成人网色www | 吞噬星空在线观看 |