《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 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亚洲国产精品_日韩亚洲一区二区
激情久久久久| 亚洲欧美成aⅴ人在线观看| 国产精品v欧美精品v日本精品动漫| 久久婷婷国产综合精品青草| 午夜精品久久久99热福利| 中文久久乱码一区二区| 99re在线精品| 亚洲精选在线观看| 亚洲毛片在线看| 亚洲精品免费一二三区| 最新高清无码专区| 最近中文字幕日韩精品 | 宅男在线国产精品| 日韩视频欧美视频| 夜夜夜久久久| 99国产精品久久久久久久| 亚洲精品国产系列| 亚洲精品欧美日韩| 亚洲精品一二| 99精品欧美一区二区三区| 艳妇臀荡乳欲伦亚洲一区| 一本色道久久精品| 亚洲图片激情小说| 亚洲免费伊人电影在线观看av| 亚洲欧美日韩一区| 欧美在线精品免播放器视频| 亚洲大胆女人| 亚洲精品美女久久久久| 日韩视频―中文字幕| 99精品视频免费观看视频| 一区电影在线观看| 亚洲在线观看视频| 亚欧成人精品| 久久青草福利网站| 欧美va天堂va视频va在线| 欧美日韩国产精品自在自线| 欧美午夜片在线观看| 国产精品羞羞答答| 国产亚洲欧美日韩美女| 精品成人一区二区| 亚洲精品少妇| 亚洲欧美日韩国产综合在线| 久久精品国产久精国产思思| 亚洲精品综合| 性8sex亚洲区入口| 久久中文久久字幕| 欧美精品福利在线| 国产精品欧美日韩| 一区二区三区亚洲| 日韩一级片网址| 亚洲欧美日韩人成在线播放| 亚洲激情在线视频| 亚洲一二三级电影| 久久精品一本| 欧美伦理视频网站| 国产人成精品一区二区三| 在线欧美亚洲| 亚洲一区二区三区四区中文 | 亚洲一区二区视频在线| 亚洲第一伊人| 亚洲一区二区三区四区中文 | 亚洲一区二区三区午夜| 久久久久免费观看| 欧美日韩国产限制| 国产一区激情| 99re66热这里只有精品4| 久久成人一区| 亚洲视频电影图片偷拍一区| 久久久久久网站| 欧美视频一区二| 永久555www成人免费| 亚洲天堂网在线观看| 亚洲三级免费观看| 欧美中在线观看| 欧美三级小说| 在线观看一区| 亚洲欧美日韩视频一区| 一本一本久久a久久精品综合麻豆| 久久精品国产亚洲一区二区| 欧美日韩午夜激情| 精品999在线播放| 亚洲欧美日韩国产综合| 制服诱惑一区二区| 免费人成精品欧美精品| 国产精品视频免费观看www| 最新日韩av| 亚洲第一综合天堂另类专| 亚洲欧美一区二区三区在线| 欧美精品成人| 尤物在线精品| 久久超碰97人人做人人爱| 亚洲男人影院| 欧美手机在线| 亚洲全部视频| 91久久精品日日躁夜夜躁欧美| 久久av一区二区三区亚洲| 欧美视频福利| 亚洲毛片在线免费观看| 亚洲精品国精品久久99热一| 久久久久久噜噜噜久久久精品| 国产欧美日韩亚洲| 亚洲一区国产| 亚洲一区在线播放| 欧美日韩专区| 亚洲美女在线一区| 亚洲免费观看| 欧美国产日韩免费| 亚洲国产老妈| 亚洲人成毛片在线播放| 美日韩精品免费| 激情综合色综合久久| 久久er99精品| 久久久噜噜噜久久| 国产欧美综合在线| 亚洲欧美一区二区原创| 午夜在线精品| 国产精品麻豆欧美日韩ww| 中文精品视频| 亚洲欧美国产毛片在线| 国产精品久久久久久久久免费桃花 | 亚洲精品久久久久中文字幕欢迎你 | 国产精品一区2区| 亚洲一区在线观看视频| 欧美一级大片在线免费观看| 国产精品有限公司| 亚洲欧美国产一区二区三区| 午夜在线视频观看日韩17c| 国产精品一区二区视频| 午夜精品久久久久久久| 久久精品系列| 一区二区三区在线视频观看| 亚洲人成在线观看网站高清| 欧美成人免费在线观看| 亚洲片区在线| 在线亚洲免费视频| 欧美性一区二区| 亚洲综合第一| 久久久久久久97| 在线看不卡av| 在线视频日本亚洲性| 国产精品国色综合久久| 亚洲女女做受ⅹxx高潮| 久久久久久久久久久一区| 黑人巨大精品欧美黑白配亚洲| 亚洲国产精品一区在线观看不卡| 欧美成人a∨高清免费观看| 亚洲日本中文字幕区| 亚洲一区欧美一区| 国产日韩欧美一区二区三区四区| 久久国产加勒比精品无码| 欧美**人妖| av成人国产| 久久www成人_看片免费不卡| 一区二区在线视频| 在线视频日韩| 国产深夜精品| 亚洲精品国产日韩| 国产精品a级| 欧美主播一区二区三区| 欧美激情日韩| 亚洲制服av| 欧美成人自拍| 亚洲一区二区三区欧美| 老司机成人在线视频| 日韩一区二区电影网| 久久精品国产久精国产思思| 亚洲成色www久久网站| 亚洲夜间福利| 一区在线免费观看| 国产精品99久久99久久久二8| 国产日本欧美在线观看| 亚洲毛片在线看| 国产老女人精品毛片久久| 亚洲日本乱码在线观看| 国产精品久久久免费| 亚洲国产欧美一区二区三区久久 | 久久一区精品| 亚洲精品小视频| 久久久久九九视频| 99国产精品久久久| 久久免费视频在线观看| 日韩手机在线导航| 久久欧美肥婆一二区| 在线一区二区三区四区| 牛牛国产精品| 午夜精品福利在线观看| 欧美精品电影在线| 久久精品国产2020观看福利| 欧美午夜大胆人体| 91久久精品一区二区别| 国产精品视频一二| 日韩午夜精品| 黄色成人在线网站| 午夜欧美精品| 日韩网站在线观看| 欧美69wwwcom| 欧美在线播放一区二区| 国产精品v欧美精品∨日韩| 亚洲精品一区中文| 韩国在线视频一区|