odbc(open database connectivity)接口,中文名為“開(kāi)放式數(shù)據(jù)庫(kù)鏈接”接口,是microsoft公司推出的實(shí)現(xiàn)異構(gòu)數(shù)據(jù)庫(kù)互連的標(biāo)準(zhǔn)。它對(duì)用戶屏蔽了不同數(shù)據(jù)庫(kù)之間的差異,從而可以使用戶利用標(biāo)準(zhǔn)的sql語(yǔ)言對(duì)各種不同的數(shù)據(jù)庫(kù)進(jìn)行操作。authorware提供了一個(gè)支持標(biāo)準(zhǔn)odbc的數(shù)據(jù)庫(kù)接口,利用標(biāo)準(zhǔn)的sql語(yǔ)言幾可以對(duì)access、foxpro、dbase、orade、sybase、sql server等數(shù)據(jù)庫(kù)進(jìn)行添加、刪除和查詢等基本操作。
一、在authorware中操作數(shù)據(jù)庫(kù),必須具備以下條件。
1)所連接數(shù)據(jù)庫(kù)的odbc驅(qū)動(dòng)程序。
2)odbc用戶代碼文件,即需要調(diào)用外部的ucd函數(shù)(odbc.u32或odbc.ucd)。
3)數(shù)據(jù)庫(kù)源文件,一般由數(shù)據(jù)庫(kù)軟件創(chuàng)建,也可以利用authorware新建和添加記錄。
odbc驅(qū)動(dòng)程序是一種動(dòng)態(tài)的鏈接庫(kù),它含有可與各種不同數(shù)據(jù)庫(kù)相連接的函數(shù),每種數(shù)據(jù)庫(kù)類型都有單獨(dú)的驅(qū)動(dòng)程序,如圖4-15所示。
圖4-15 odbc驅(qū)動(dòng)程序
二、用戶使用的每個(gè)odbc驅(qū)動(dòng)程序都必須包含基本系列的函數(shù),基本的功能如下。
1)提供數(shù)據(jù)庫(kù)的鏈接;
2)準(zhǔn)備和執(zhí)行sql語(yǔ)句;
3)處理事務(wù)的功能;
4)返回結(jié)果集;
5)通知應(yīng)用程序的錯(cuò)誤信息。
在authorware中正常使用數(shù)據(jù)庫(kù)的兩個(gè)基本條件。
1)系統(tǒng)中的odbc驅(qū)動(dòng)程序必須可用,其作用是用來(lái)連接一種數(shù)據(jù)庫(kù)。
2)必須建立odbc數(shù)據(jù)源,用來(lái)連接一種特殊類型的數(shù)據(jù)庫(kù)的odbc驅(qū)動(dòng)程序配置。
配置odbc的方法一般有兩種,手動(dòng)配置和自動(dòng)配置。
一、利用windows的控制面板中的odbc管理應(yīng)用程序來(lái)實(shí)現(xiàn)手動(dòng)配置odbc數(shù)據(jù)源.
1)打開(kāi)windows操作系統(tǒng)中的控制面板,找到“odbc數(shù)據(jù)源(32位)”圖標(biāo),雙擊它。
2)出現(xiàn)“odbc數(shù)據(jù)源管理器”,如圖4-16所示。一共有七個(gè)選項(xiàng)卡,這里的“dsn”是“date sourle name”(數(shù)據(jù)源名)的縮寫(xiě)。
圖4-16 odbc數(shù)據(jù)源管理器
3)切換到“系統(tǒng)dsn”選項(xiàng)卡,可以看到這里已經(jīng)有一個(gè)名為“ecdcmusic”的數(shù)據(jù)源,這里我們單擊【添加】按鈕來(lái)添加一個(gè)新的數(shù)據(jù)源。
4)出現(xiàn)“創(chuàng)建新數(shù)據(jù)源”對(duì)話框,如圖4-17所示。這里我們選擇數(shù)據(jù)源類型為“microsoft access driver (*.mdb)”,表示將引入微軟公司access軟件開(kāi)發(fā)的數(shù)據(jù)庫(kù)文件。
圖4-17 創(chuàng)建新數(shù)據(jù)源對(duì)話框
5)單擊圖4-17中的【完成】按鈕,出現(xiàn)如圖4-18所示的對(duì)話框,在這里填入數(shù)據(jù)源的名稱,說(shuō)明部分可以不填。
圖4-18 數(shù)據(jù)源的名稱對(duì)話框
6)在圖4-18中我們還可以為數(shù)據(jù)源選擇指定的數(shù)據(jù)庫(kù)文件,單擊【選擇】按鈕,將會(huì)彈出對(duì)話框,在這里我們選擇“e:/aw7/u32/odbc/ student.mdb”作為源數(shù)據(jù)庫(kù),然后單擊【確定】按鈕。
7)在圖4-19中我們會(huì)看到紅框部分,說(shuō)明加載數(shù)據(jù)庫(kù)已經(jīng)成功。
圖4-19 數(shù)據(jù)庫(kù)已加載
8)數(shù)據(jù)源創(chuàng)建成功后,出現(xiàn)如圖4-20所示的對(duì)話框,紅的矩形框部分就是我們剛才創(chuàng)建的名為“myodbc”的數(shù)據(jù)源,單擊【確定】按鈕完成。
圖4-20 “myodbc”的數(shù)據(jù)源
二、在authorware中調(diào)用“tmsdsn.u32”函數(shù)實(shí)現(xiàn)odbc數(shù)據(jù)源的自動(dòng)配置。
自動(dòng)配置數(shù)據(jù)源的優(yōu)點(diǎn):通過(guò)authorware編制的程序,打包成可執(zhí)行文件時(shí),可以在其他機(jī)子上直接運(yùn)行,而不需要手動(dòng)去配置數(shù)據(jù)源。
1.外部函數(shù)tmsdsn.u32介紹。
數(shù)據(jù)源的配置主要是運(yùn)用了tmsdsn.u32中的tmsdbregister()函數(shù),其語(yǔ)法結(jié)構(gòu)介紹如下。
result:=tmsdbregister(dbreqtype,dbtype,dblist)
參數(shù)設(shè)置完畢,運(yùn)行程序,如果新數(shù)據(jù)庫(kù)創(chuàng)建成功,result變量的返回值是1,否則返回0。
2.?dāng)?shù)據(jù)源自動(dòng)創(chuàng)建實(shí)例。
1)程序的流程圖如圖4-21所示。
圖4-21 自動(dòng)創(chuàng)建數(shù)據(jù)源流程圖
2)只要?jiǎng)?chuàng)建一個(gè)文本交互,這個(gè)文本交互是讓用戶輸入數(shù)據(jù)源的名稱,交互下的計(jì)算圖標(biāo)是根據(jù)用戶輸入的數(shù)據(jù)源名稱創(chuàng)建一個(gè)數(shù)據(jù)源。在“*”計(jì)算圖標(biāo)中輸入如下內(nèi)容:
mydsn:=entrytext
把用戶鍵入的數(shù)據(jù)源名賦給自定義變量“mydsn”。
dbtype:="microsoft access driver (*.mdb)"
定義數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序的類型是“microsoft access driver”。
dblist:="dsn="^mydsn^";"
設(shè)置新建的數(shù)據(jù)源名為用戶鍵入的名稱。
dblist:=dblist^"description=my odbc dsn;"
對(duì)數(shù)據(jù)源說(shuō)明。
dblist:=dblist^"fil=ms access;"
說(shuō)明數(shù)據(jù)源的類型是“access”數(shù)據(jù)庫(kù)。
dblist:=dblist^"dbq="^filelocation^"student.mdb;"
與數(shù)據(jù)源相連接的數(shù)據(jù)庫(kù)名為“student.mdb”。
result:=tmsdbregister(4,dbtype,dblist)
創(chuàng)建一個(gè)新的系統(tǒng)數(shù)據(jù)源。
3)顯示圖標(biāo)“結(jié)果提示”上附加的計(jì)算圖標(biāo)是用來(lái)判斷數(shù)據(jù)源的創(chuàng)建結(jié)果的,你也可以通過(guò)控制面板中的“odbc數(shù)據(jù)源(32位)”來(lái)查看創(chuàng)建的結(jié)果,在“結(jié)果提示”上附加的計(jì)算圖標(biāo)中輸入如下內(nèi)容:
if result:=0 then
odbcname:="數(shù)據(jù)源創(chuàng)建失敗!"
else
odbcname:="數(shù)據(jù)源創(chuàng)建成功!"
end if
根據(jù)數(shù)據(jù)源創(chuàng)建的情況分別給出不同的提示!
authorware中沒(méi)有針對(duì)數(shù)據(jù)庫(kù)直接操作的函數(shù),因此,需引入外部函數(shù)odbc.u32來(lái)提供數(shù)據(jù)庫(kù)操作功能,odbc.u32一共提供了3個(gè)函數(shù),下面來(lái)一一介紹。
1)odbcopen():打開(kāi)數(shù)據(jù)庫(kù)函數(shù)。
語(yǔ)法格式:
odbchandle:=odbcopen(windowhandle,errorvar,
datebase,user,password)
此函數(shù)是用來(lái)打開(kāi)指定的數(shù)據(jù)庫(kù)“datebase”,各個(gè)參數(shù)介紹如下:
例如:
odbchandle:=odbcopen(windowhandle,"",
"hb_dsn","","")
2)odbcexecute():對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作的語(yǔ)句。
語(yǔ)法格式:
odbcdate:= odbcexecute (odbchandle,
sqlstring)
odbcexecute()返回字符串的長(zhǎng)度不能大于30 000個(gè)字節(jié),如果大于這個(gè)值,系統(tǒng)將提示出錯(cuò)信息,返回的字符串被削減為30 000bytes以內(nèi)。因?yàn)樵赼uthorware中,字符串型變量的最大長(zhǎng)度不能超過(guò)30 000bytes,所以如果庫(kù)中的記錄很多(總字節(jié)數(shù)超過(guò)30 000bytes),就必須分多次查詢,保持每次查詢結(jié)果集的長(zhǎng)度小于30 000bytes。
3)odbcclose()
格式:odbcclose(ocbchandle)
功能:操作完成后,關(guān)閉當(dāng)前打開(kāi)的數(shù)據(jù)庫(kù)。
ocbchandle是指authorware所提供的odbc控制句柄。
注:當(dāng)數(shù)據(jù)庫(kù)操作完畢后,一定要及時(shí)用odbcclose(ocbchandle)函數(shù)關(guān)閉數(shù)據(jù)庫(kù),否則操作其他數(shù)據(jù)庫(kù)或其他的應(yīng)用程序都將無(wú)法使用odbc接口。
新聞熱點(diǎn)
疑難解答