摘要:該文介紹了利用Authorware的一個數據庫編程接口——ODBC.U32動態鏈接庫功能與數據庫進行連接,實現題目和程序的分離。
關鍵詞:Authorware;ODBC;數據庫
中圖分類號:TP311文獻標識碼:A文章編號:1009-3044(2008)30-0623-03
DataBase Programming Based on ODBC Technology in Authorware
WANG Yan-li
(Jilin Medical College, Jilin 132013, China)
Abstract: This paper describes a database programming interface - ODBC.U32 dynamic link library's function and the connection to the database in Authorware, It can achieve the separation of topics and procedures.
Key words: Authorware; ODBC; DataBase
1 引言
Authorware是Macromedia公司推出的一款多媒體制作軟件,它采用了一種基于圖標、流程線式的制作方法,提供了交互和程序控制功能,非常適合開發各種交互式多媒體教學軟件。但是使用Authorware開發的綜合教學系統絕大多數數據處理是靜態的,習題都是固化在程序內部的,如果要更新修改試題數據會非常繁瑣,這就給設計者和使用都造成了麻煩。基于這種情況,我們可以利用Authorware的一個數據庫編程接口——ODBC.U32動態鏈接庫功能與數據庫進行連接,實現題目和程序的分離。
2 Authorware訪問數據庫的原理
Authorware提供了一個支持標準ODBC的數據庫接口——ODBC.U32,利用標準的SQL語言實現對關系數據庫的添加、刪除和查詢等基本操作。 Authorware執行數據庫操作時,首先調用外部的U32函數(ODBC.U32),通過數據源或數據庫連接字符串與ODBC驅動程序建立聯系,由ODBC驅動程序連接并打開數據庫;然后用標準SQL命令通過U32函數的操作訪問數據庫,再對返回的記錄集通過調用某些系統函數可以獲取某條記錄的某個字段的值;最后調用U32函數關閉數據庫連接,結束對數據庫的訪問。
2.1 ODBC數據源的建立
建立ODBC數據源有兩種方式:手工配置和調用“tMsdsn.u32”函數實現ODBC數據源的自動配置,自動配置數據源優于手工配置,因為通過Authorware編制的程序,打包成可執行文件時,可以在其它機器上直接運行,而不需要手動去配置數據源。在本文中不介紹手動配置ODBC。自動配置數據源主要運用了tMsdsn.u32中的tMsDBRegister()函數,其語法結構如下:result:=tMsDBRegister(dbReqType,dbType,dbList),dbReqType用來指定將要對數據源進行何種操作,,dbType指定ODBC數據源的驅動程序,dbList指定ODBC數據源的名稱、描述以及與之相連的數據庫文件。參數設置完畢,運行程序,如果新數據庫創建成功,result變量的返回值是1,否則返回0。
2.2 數據庫操作函數
Authorware中沒有針對數據庫直接操作的函數,因此,需引入外部函數ODBC.U32來提供數據庫操作功能,ODBC.U32一共提供了3個函數,下面來一一介紹。
2.2.1ODBCOpen():打開數據庫函數
語法格式:ODBCHandle:=ODBCOpen(WindowHandle,ErrorVar,Datebase,User,PassWord)
此函數是用來打開指定的數據庫“Datebase”,各個參數介紹如下:其中
ODBCHandle是Authorware提供的ODBC操作句柄; WindowHandle是Authorware提供的窗口句柄;ErrorVar是錯誤信息變量,可以省略;Datebase是所使用的數據庫名稱。User是數據庫用戶的用戶名,可以省略;Password為數據庫用戶的密碼,可以省略。
2.2.2 ODBCExecute():對數據庫進行操作的語句
語法格式:ODBCdata:= ODBCExecute (ODBCHandle,SQLString)
ODBCHandle是Authorware提供的ODBC操作句柄;SQLString為標準的SQL語言,用來對數據庫進行相應的操作,如查詢、添加、刪除記錄等。 ODBCExecute()返回字符串的長度不能大于30 000個字節,如果大于這個值,系統將提示出錯信息,返回的字符串被削減為30 000Bytes以內。
2.2.3 ODBCClose():關閉當前打開的數據庫
語法格式:ODBCClose(OCBCHandle)
當數據庫操作完畢后,一定要及時用ODBCClose(OCBCHandle)函數關閉數據庫,否則操作其他數據庫或其他的應用程序都將無法使用ODBC接口。
3 系統實現
以下是一個簡單的數據庫出題系統,使用Authorware與Access混合編程,界面友好,交互性強,實現簡單。該系統后臺數據庫有二張表:選擇題和填空題,下面以選擇題表為例進行介紹,表中內容如圖1所示:
1)“連接數據庫”計算圖標中有如下代碼:
dbreqtype:=4
dbType:=\"Microsoft Access Driver (*.mdb)\"
dbList:=\"DSN=test;\"
dbList:=dbList^\"Description=試題庫;\"
dbList:=dbList^\"FIL=MS Access;\"
dbList:=dbList^\"DBQ=\"^FileLocation^\"題庫.mdb\"
result:=tMsDBRegister(dbreqtype,dbType,dbList)
odbchandle:=ODBCOpen(WindowHandle,\"error\",\"題庫\",\"\",\"\")
message:=\"\"
2)“選擇題初始化”計算圖標的代碼如下:
odbcsql:=\"select count(*) from 選擇題\"
max:=ODBCExecute(odbchandle,odbcsql)
if max >=1 then
i:=1
end if
3)“上一頁”計算圖標的代碼如下:
if max >0 then
if i<1 then
i:=1
else
i:=i-1
end if
Checked@\"選A\":=0
Checked@\"選B\":=0
Checked@\"選C\":=0
Checked@\"選D\":=0
message:=\"\"
GoTo(IconID@\"選擇題\")
end if
“下一頁”和“上一頁”計算圖標的代碼基本一致,把
if i<1 then
i:=1
else
i:=i-1
改成if i>=maxthen
i:=max
else
i:=i+1
end if即可。這里用變量i的增減來控制數據表中記錄指針的移動,實現上下題目之間的翻頁。
4)“選擇”計算圖標的代碼如下:
if i>=1 i<=max then
tihao:=String(i)
odbctimu:=\"select 題干 from 選擇題 where 題號=\"^tihao
timu:=ODBCExecute(odbchandle,odbctimu)
odbcdaa:=\"select A from 選擇題 where 題號=\"^tihao
daana:=ODBCExecute(odbchandle,odbcdaa)
odbcdab:=\"select B from 選擇題 where 題號=\"^tihao
daanb:=ODBCExecute(odbchandle,odbcdab)
odbcdac:=\"select C from 選擇題 where 題號=\"^tihao
daanc:=ODBCExecute(odbchandle,odbcdac)
odbcdad:=\"select D from 選擇題 where 題號=\"^tihao
daand:=ODBCExecute(odbchandle,odbcdad)
odbcdaan:=\"select 答案 from 選擇題 where 題號=\"^tihao
daan:=ODBCExecute(odbchandle,odbcdaan)
end if
5)“選A”計算圖標的代碼為:
if Checked@\"選A\"=1 then
Checked@\"選B\":=0
Checked@\"選C\":=0
Checked@\"選D\":=0
end if
useranswer:=\"A\"
if useranswer=daan then
message:=\"恭喜你!\"
else
message:=\"請再試一試\"
GoTo(IconID@\"選擇題\")
end if“選B” 、“選C”、 “選D”計算圖標的代碼基本雷同,稍作修改即可,這里不再贅述。
6) “退出”計算圖標的代碼為:
odbc error:=ODBCClose(odbchandle)
Quit(0)
用來結束與數據源的連接,關閉退出。
7)“題目”顯示圖標的設計如圖3所示,設計好運行后整個運行界面如圖4所示。
界面
4 結束語
本文主要介紹了選擇題的設計,對于填空題、判斷題的設計只要稍作修改即可,也可以修改成隨機抽題系統,本文不作詳述。該系統基于ODBC技術,可以動態地訪問數據庫,這使得題庫的更新和修改變得容易,實用性強,可以大大增強教學軟件的功能。
參考文獻:
[1] 胡振生.Authorware 7.0多媒體開發白金手冊[M].北京:人民郵電出版社,2005.
[2] 張增強.Authorware 7.0入門與提高[M].北京:中國鐵道出版社,2005.
注:本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文