如何用VB訪問(wèn)外來(lái)數(shù)據(jù)庫(kù)

字號(hào):

vb最引人注目的特點(diǎn),也是其最令程序員關(guān)心的地方,就是它訪問(wèn)多種數(shù)據(jù)庫(kù)的強(qiáng)大功能。vb中將非ms access數(shù)據(jù)庫(kù)稱為外來(lái)數(shù)據(jù)庫(kù)(external database),如dbase、foxpro、odbc等。vb中使用數(shù)據(jù)控制訪問(wèn)外來(lái)數(shù)據(jù)庫(kù)同訪問(wèn)access數(shù)據(jù)庫(kù)類似,這里不再贅述,現(xiàn)在主要讀一下用生成對(duì)象的方法來(lái)訪問(wèn)外來(lái)數(shù)據(jù)庫(kù)。訪問(wèn)外來(lái)數(shù)據(jù)庫(kù)((以dbase為例)大致分為以下幾步:
    第一步:建立一個(gè)access型數(shù)據(jù)庫(kù),并在數(shù)據(jù)庫(kù)中創(chuàng)建新表—即為附加表。通過(guò)設(shè)置
    附加表的各屬性值,使其與你所要訪問(wèn)的數(shù)據(jù)庫(kù)建立鏈接關(guān)系。程序代碼如下:
     dimdbasdatabase
     dimtdasnewtabledef
     setdb=opendatabase("mydb.mdb")
     td.connect="dbase:database=c:\datadir"
     td.sourcetablename="au thor"
     td.name="dbaseauthortable"
     db.tabledefsappendtd
     db.close
    第二步:設(shè)置ini文件路徑。在vb的程序中使用了訪問(wèn)外來(lái)數(shù)據(jù)庫(kù)操作,將應(yīng)用程序生成exe文件后,必須提供一個(gè)ini文件。若找不到這個(gè)ini文件,將會(huì)導(dǎo)致不能訪問(wèn)數(shù)據(jù)庫(kù),并出現(xiàn)“notfoundin stollabkisams’的錯(cuò)誤信息。設(shè)置ini文件路徑后,vb的程序會(huì)在windows子目錄中尋找與應(yīng)用程序同名的ini文件。設(shè)置ini文件路徑代碼為:
     setdataaccessoption1,“path\filename”
    第三步:編輯.ini文件可對(duì)不同種類的數(shù)據(jù)庫(kù)進(jìn)行設(shè)置,下面為一ini文件代碼:
     [options]
     systemdb=c: \mypath\system.mda
    ?。踚sam]
     pagetimeout=5
     maxbuffersize=128
     lockretry=20
     commitlockpetry=20
     readaheadpages=16
     [installableisams]
     paradox3.x=c:\vb\pdx110.dll
     foxpro2.0=c:\vb\xbs110.dll
     foxpro2.5=c:\vb\pdx110.dll
     dbase=c:\vb\pdx110.dll
     dbase=c:\vb\pdx110.dll
     btrieve=c:\vb\btrv110.dll
    ?。踦aradoxisam]
     pagetimeout=600
     paradoxusername=baiuser
     paradoxnetpath=p:\pdxdb\
     collatingseguence=ascii
    ?。踕base]
     centry=off
     data=american
     mark=47
     deleted=on
    這樣通過(guò)訪問(wèn)新數(shù)據(jù)庫(kù)mydb.mdb和表“dbaseau thortabk”即可訪問(wèn)你所要訪問(wèn)的外來(lái)數(shù)據(jù)庫(kù)了。
    使用這種方法訪問(wèn)外來(lái)數(shù)據(jù)庫(kù)應(yīng)該注意的是,附加表在所加到的數(shù)據(jù)庫(kù)中只是建立了一個(gè)鏈接關(guān)系,表的實(shí)際所在,仍然存在于原數(shù)據(jù)庫(kù)中,該表在所附加到的數(shù)據(jù)庫(kù)中被刪除時(shí),只是刪掉了鏈接關(guān)系,實(shí)際的表并沒(méi)有被刪除。