《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > Authorware7中訪問SQL數據庫數據的兩種方法研究
Authorware7中訪問SQL數據庫數據的兩種方法研究
2014年微型機與應用第17期
范翠香
西安理工大學,陜西 西安 710082
摘要: 根據Microsoft ODBC接口、Authorware提供的ODBC.U32系統函數、Authorware中關于file的相關函數以及SQL Server理論,探討并研究了Authorware中靜態和動態方式訪問SQL Server數據庫的方法,給出了Authorware 7中靜態和動態訪問SQL數據庫的實現方法,并分別給出了較為詳細的實例操作過程。
Abstract:
Key words :

  摘 要: 根據Microsoft ODBC接口、Authorware提供的ODBC.U32系統函數、Authorware中關于file的相關函數以及SQL Server理論,探討并研究了Authorware中靜態和動態方式訪問SQL Server數據庫的方法,給出了Authorware 7中靜態和動態訪問SQL數據庫的實現方法,并分別給出了較為詳細的實例操作過程。

  關鍵詞: Authorware;SQL Server;數據庫

  課件和知識測驗等。在這些Authorware的多媒體作品中,經常需要引用SQL Server數據庫中的數據。有時對引用數據只是一種單一靜態展示,有時需要引用實時SQL數據并且對引用SQL數據庫進行編輯修改,即以動態方式訪問SQL數據。這兩種引用SQL數據庫的方法在各種Authorware教材中或是不涉及或是涉及很少。本文就Authorware中靜態方式和動態方式引用SQL數據庫數據的實現方法進行探討并給出詳細的操作實例。

1 以靜態方式引用SQL數據庫中的數據

  在Authorware的多媒體作品中有時候僅僅想引用并展示SQL的數據庫的查詢結果,并不需要對數據庫數據進行其他操作,因此可以用靜態方式引用SQL數據庫中的數據。實現方法是將SQL數據庫查詢結果轉換成文本文件,再利用Authorware提供的內部函數訪問文本文件內容,從而獲得查詢結果集中的記錄及各字段的值。

  1.1 在SQL Server中生成查詢結果的文本文件

  方法1:在SQL中用命令方式實現

  (1)在SQL Server Management Studio 中執行如下命令,啟動 show advanced options 項并設置為 1后, 再開啟xp_cmdshell(注:xp_cmdshell 擴展存儲過程將命令字符串作為操作系統命令 shell 執行,并以文本行的形式返回所有輸出)。

  EXEC sp_configure 'show advanced options', 1

  GO

  RECONFIGURE

  GO

  EXEC sp_configure 'xp_cmdshell', 1

  GO

  RECONFIGURE

  GO

  (2)通過bcp將SQL查詢的結果保存在指定的文本文件中。

  EXECmaster.dbo.xp_cmdshell 'bcp "select sno,sname,sex from studb.dbo.student" queryout "F:\authorware\student.txt" -c -T'

  這時保存查詢結果的文本文件student.txt已經存在了,該文件中各字段之間的分隔符為Tab。

  方法2:在SQL Server中用操作方式實現[3]

  (1)在SQL Server Management Studio工具菜單欄的選項中,將查詢結果的顯示方式改為以文本格式顯示結果,并將輸出格式的分隔符設置為置表符分隔。

  (2)重新啟動服務器后,執行相應的查詢命令:

  Use studb

  Go

  selectsno,sname,sex from student

  go

  在顯示結果的窗格內將最后一個非記錄行刪除。

  (3)擊鼠標右鍵,選擇“將結果另存為”命令,保存查詢結果為txt文件。

  (4)打開該文本文件后,選擇“另存為”命令,在彈出的另存為對話框中,選擇編碼為ANSI,如圖1所示,單擊保存按鈕。

001.jpg

  1.2 對文本文件進行讀寫操作[3-4]

  (1)用ReadExtFile(“文本文件名”)函數讀取文本文件的內容,函數結果為文本文件的內容字符串。

  Filestring:=ReadExtFile(“文件路徑及文件名”)

  (2)用LineCount()函數獲取整個結果集的記錄行數,默認分隔符為回車。

  Number:=LineCounr(“Filestring”)

  (3)用GetLine() 函數獲取字符串的第n行記錄,結果仍為一個字符串。

  recordstring:=GetLine(“Filestring”,n)

  (4)用replace()函數將記錄行中各字段間的分隔符Tab替換為回車符,結果仍為字符串。

  Rec:=Replace(Tab,”\r”,recordstring)

  (5)根據實際需要用GetLine()函數分別獲取該記錄中第m個字段值,返回字段值的字符串。

  fields1:=GetLine(rec,m)

  (6)在Authorware的顯示圖標中及文字工具顯示所需的字段值。

2 靜態訪問SQL數據實例

  文中的示例數據庫是一個學生成績管理數據庫studb,其中有一個存放著學生基本信息的二維關系表stduent,如圖2所示。

002.jpg

  設計流程線如圖3所示。

003.jpg

  (1)在設置窗口大小的計算圖標中輸入代碼:ResizeWindow(240,150)。

  (2)再讀取文本文件的計算圖標中輸入代碼:

  txtstring:=ReadExtFile("F:\\student.txt")

  linecount:=LineCount(txtstring)

  rec_n:=1

  (3)在顯示記錄的交互圖標的附加計算圖標中輸入代碼:

  rec:=GetLine(txtstring, rec_n)

  rec:=Replace(Tab,"\r",rec)

  fields1:=GetLine(rec,1)

  fields2:=GetLine(rec,2)

  fields3:=getline(rec,3)

  (4)在交互圖標中添加文字顯示:

  學號:{fields1}

  姓名:{fields2}

  性別:{fields3}

  (5)在交互圖標右側的3個響應方式為按鈕的計算圖標中分別輸入代碼:

  前一記錄:

  if rec_n>1 then

  rec_n:=rec_n-1

  end if

  后一記錄:

  if linecount>rec_n then

  rec_n:=rec_n+1

  end if

  退出:quit()

  (6)運行結果如圖4所示,通過單擊按鈕前一記錄和后一記錄,可進行所有記錄的瀏覽。單擊退出按鈕結束程序。

004.jpg

3 以動態方式訪問SQL數據庫中的數據

  Authorware7提供了一個支持標準ODBC 的數據庫接口—ODBC.U32,從而利用MicroSoft ODBC接口和標準的SQL語言實現對關系數據庫的添加、刪除和查詢等基本操作[3]。

  Authorware 執行數據庫操作時,首先調用外部的U32函數(ODBC.U32),通過數據源或數據庫連接字符串與ODBC驅動程序建立聯系,由ODBC驅動程序連接并打開數據庫;然后用標準 SQL命令通過U32函數的操作訪問數據庫,再對返回的記錄集通過調用某些系統函數可以獲取某條記錄的某個字段的值;最后調用U32函數關閉數據庫連接,結束對數據庫的訪問[2]。

  3.1 控制面板中ODBC(32位)數據源管理的配置


005.jpg

006.jpg

  進行SQL數據源的配置有手動方式和調用“tMsdsn.u32”函數實現 ODBC 數據源的自動配置自動方式,自動方式見參考文獻[2]。本文介紹了手動配置過程。在控制面板中,單擊圖5中的ODBC(32位)項。在彈出的ODBC數據源管理器中,如圖6所示,單擊添加按鈕,在創建數據源的對話框中選擇數據源驅動程序為SQL Native Client,單擊完成,進入到如圖7所示的創建SQL Server新數據源窗口,給數據源命名、選擇服務器、SQL登錄方式以及默認數據庫(如本文中數據庫studb),如圖8所示,并進行數據源連接測試,確定連接測試成功。

  3.2 在Authorware7中操作數據庫

  利用ODBC.U32的3個函數對SQL數據庫打開、執行SQL命令、關閉SQL數據庫操作。

  ODBCHandle:=ODBCOPEN(WindowHandl,ErrorVar,Database,User,password)

  ODBCdata:=ODBCExecute(ODBCHandle,SQLstring)

  ODBCClose(ODBCHandle)

  其中,SQLstring為需要執行的SQL命令,ODBCExecute()的執行結果為結果字符串,對其內容的處理方式同文本方式。

4 動態訪問SQL數據實例

  設計流程線如圖9所示。

009.jpg

  (1)在名為“窗口大小”的計算圖標輸入代碼:

  ResizeWindow(240,150)

  (2)在名為“odbc代碼”的計算圖標內輸入代碼:

  database:="sql_studb"

  sqlstring:="select sno,sname,sex from student"

  odbcchandle:=ODBCOpen(WindowHandle,"odbccerror",database,"","")

  odbcdata:=ODBCExecute(odbcchandle,sqlstring)

  ODBCClose(odbcchandle)

  (3)在名為“統計記錄數”的計算圖標內輸入:

  recordcount:=LineCount(odbcdata)

  n:=1

  (4)在交互圖標的附加計算圖標內輸入:

  rec:=GetLine(odbcdata,n)

  rec:=Replace(Tab,"\r",rec)

  fieldcount:=LineCount(rec)

  field1:=GetLine(rec,1)

  field2:=GetLine(rec,2)

  field3:=GetLine(rec,3)

  (5)在交互圖標右則的各計算圖標內容同靜態案例一樣。

  (6)運行結果如圖10所示。

010.jpg

  本文根據microsoft ODBC接口、Authorware提供的ODBC.U32系統函數、Authorware中關于file的相關函數以及SQL Server理論,探討并研究了Authorware中靜態和動態方式訪問SQL Server數據庫的方法,給出Authorware 7中靜態和動態訪問SQL數據庫的實現方法。以學生成績數據庫studb為SQL數據源,提供了在Authorware7中分別以靜態和動態方式訪問SQL數據庫的詳細操作過程,為需要在Authorware中訪問SQL數據庫數據的多媒體制作者提供參考。

參考文獻

  [1] 王冬.Authorware程序訪問和操作數據庫初探[J].瓊州大學 學報,2006,13(2):113.

  [2] 王彥麗.Authorware 基于 ODBC 技術的數據庫編程[J].電腦知識與技術,2008, 4(3) :623-625.

  [3]朱詩兵,李迎春.Authorware 數據庫編程[M].北京:清華大學出版社,2000.

  [4] 梁培文,葉小平,周奇.基于Authorware實現的多媒體數據庫管理系統的研究[J].中山大學(自然科學版),2008(47):7.


此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
亚洲激情欧美激情| 亚洲日本中文字幕免费在线不卡| 久久激情五月婷婷| 一区二区三区四区五区视频 | 欧美专区日韩专区| 亚洲激情网址| 欧美一区二区三区日韩| 一本色道久久加勒比88综合| 在线观看欧美日韩| 国产亚洲欧美一区二区三区| 国产精品电影在线观看| 欧美久久在线| 欧美精品网站| 久久精品国产欧美亚洲人人爽| 亚洲综合不卡| 亚洲午夜日本在线观看| 日韩一级黄色av| 亚洲区欧美区| 亚洲国产成人不卡| 欧美一区综合| 欧美一区影院| 欧美亚洲一级片| 一本久久a久久精品亚洲| 亚洲人www| 亚洲国产午夜| 国产精品女主播在线观看| 欧美永久精品| 午夜精品福利视频| 亚洲一区二区三区欧美 | 欧美成人高清| 麻豆乱码国产一区二区三区| 久热精品视频在线| 免费成人av资源网| 欧美a级大片| 欧美高清视频一区二区| 蜜臀a∨国产成人精品| 另类尿喷潮videofree | 国产久一道中文一区| 国产精品久久久久999| 国产精品成人一区二区网站软件 | 91久久国产综合久久91精品网站| 亚洲成色777777女色窝| 亚洲高清一二三区| 91久久久久久国产精品| 国产综合久久久久久鬼色| 狠狠久久五月精品中文字幕| 精品999久久久| 亚洲第一区色| 最新日韩中文字幕| 一本久道久久综合中文字幕| 日韩五码在线| 亚洲性感美女99在线| 中文在线资源观看网站视频免费不卡| 亚洲视频第一页| 亚洲综合电影| 性色av一区二区三区红粉影视| 欧美专区在线| 亚洲精品亚洲人成人网| 亚洲视频欧洲视频| 欧美一区二区日韩| 久久久久久久久久看片| 男男成人高潮片免费网站| 久久麻豆一区二区| 欧美国产乱视频| 欧美涩涩网站| 国产日韩欧美夫妻视频在线观看| 激情五月***国产精品| 亚洲黄色在线| 亚洲一区久久久| 欧美一区午夜精品| 国产精品s色| 国产主播一区二区三区| 亚洲高清不卡一区| 亚洲视频一区二区免费在线观看| 欧美亚洲网站| 亚洲精品一二区| 午夜一区二区三区在线观看| 99亚洲一区二区| 欧美一二区视频| 欧美h视频在线| 国产精品久久久久99| 韩日视频一区| 中文在线资源观看视频网站免费不卡| 欧美中文字幕在线| 一区二区三区你懂的| 久久国产精品99久久久久久老狼| 麻豆精品视频在线观看视频| 欧美日韩在线影院| 精品1区2区| 亚洲美女电影在线| 欧美中在线观看| 亚洲一区二区三区视频播放| 久久久综合网站| 国产精品久久九九| 亚洲国产天堂久久国产91| 中文在线资源观看网站视频免费不卡 | 亚欧成人精品| 欧美日韩不卡合集视频| 欧美成人一品| 国产一区在线播放| 亚洲欧美久久久久一区二区三区| 一区二区欧美精品| 日韩亚洲综合在线| aa日韩免费精品视频一| 免费成人黄色| 精品99视频| 欧美在线一二三四区| 欧美在线免费视屏| 国产欧美日韩一区二区三区在线| 亚洲视频在线观看一区| 亚洲视频一起| 欧美区日韩区| 亚洲人成高清| 日韩亚洲欧美中文三级| 欧美激情第二页| 亚洲国产精品精华液2区45| 亚洲国产精品成人综合| 久久久久久久网| 狠狠色丁香久久婷婷综合丁香 | 久久国产综合精品| 久久久久国产一区二区| 国产亚洲一区二区精品| 欧美在线视频不卡| 久久久在线视频| 激情五月婷婷综合| 亚洲国产日韩欧美在线图片 | 欧美激情1区2区| 亚洲精品精选| 一本色道精品久久一区二区三区| 欧美区亚洲区| 99亚洲一区二区| 亚洲欧美韩国| 国产欧美一区二区三区在线看蜜臀| 亚洲字幕在线观看| 久久精品中文字幕一区二区三区| 好吊妞这里只有精品| 亚洲黄色大片| 欧美片第1页综合| 亚洲一区二区3| 欧美制服丝袜| 在线观看欧美日本| 亚洲九九精品| 国产精品v一区二区三区 | 久久成年人视频| 欧美电影免费观看高清| 99视频超级精品| 小黄鸭视频精品导航| 韩国v欧美v日本v亚洲v| 亚洲久久在线| 国产精品入口尤物| 久久国产福利| 欧美日本亚洲| 午夜综合激情| 久色婷婷小香蕉久久| 欧美大片免费观看| 一级日韩一区在线观看| 久久gogo国模裸体人体| 在线观看福利一区| 亚洲一区免费视频| 韩国av一区二区三区四区| 一二美女精品欧洲| 国产日韩精品在线播放| 亚洲精品在线看| 国产精品亚洲视频| 亚洲精品视频啊美女在线直播| 国产精品第十页| 亚洲高清久久网| 欧美日韩一区高清| 欧美在线视频日韩| 欧美日韩精品欧美日韩精品 | 欧美亚洲一级| 欧美久久综合| 性欧美暴力猛交69hd| 欧美大秀在线观看| 亚洲欧美日韩在线一区| 欧美国产欧美综合| 亚洲一区二区三区影院| 免费看黄裸体一级大秀欧美| 亚洲视频一区在线| 欧美成人免费全部观看天天性色| 一区二区三区日韩精品视频| 久久免费精品视频| 中文国产亚洲喷潮| 欧美xx视频| 欧美亚洲综合网| 欧美日韩国产综合网| 久久成人亚洲| 国产精品九九久久久久久久| 亚洲激情自拍| 国产日韩在线视频| 在线亚洲自拍| 亚洲福利久久| 欧美一区二区啪啪| 99视频一区二区三区| 麻豆精品视频在线| 亚洲欧美视频一区二区三区| 欧美日韩在线观看一区二区| 亚洲国产日韩一区二区| 国产日韩一区在线| 亚洲女同同性videoxma|