資料|資料庫 本文給你介紹一種在Flash中應用ASP技術實現資料庫查詢的新方法,它不但在用戶端完全隱藏了.asp程式,而且Flash的易用性、圖形化使你的網頁與眾不同。
基本原理
1.Flash處理外部變數的方法
Flash通過取Frame Properties中URL指定的檔案所輸出的字串作為自身變數及其值,這個檔案可以是CGI程式或ASP程式,輸出的字串必須定義成如下的格式:
company=Macromedia&address=600+Townsend&
city=San+Francisco&zip=94103
這個字串匯入到Flash後,分成4個變數並賦予不同的值,即:
利用ASP中Server.URLEncode方法很容易實現這種格式;另外你也可以通過編程來實現:
< %@Language=“VBScript”% >
< %
option explicit
dim var(3),i,count
i=0
count=3
var(0)=“Red”
var(1)=“Yellow”
var(2)=“Blue”
do while i< count
response.write“var”&i&“=”&var(i)&“&”
i=i+1
loop
response.write“i=”&i
% >
執行這個ASP程式的結果是:
var0=Red&var1=Yellow&var2=Blue&i=3
2.在ASP和Flash之間傳遞資料
當你的ASP程式產生上述格式的字串以後,可以使用 Load variables (“myscript.asp",0)的動作描述將其傳入到Flash中(如圖1):
其中,0表示裝入動畫的層為第一層,1表示第二層,以此類推。
使用Load variables (“myscript.asp",0,vars=POST) 動作描述,ASP可用以下兩種方法實現從Flash中取出資料 :
1、Request.Form(“flash_var_1")
2、Request(“flash_var_1")
使用Load variables (“myscript.asp",0,vars=GET) 動作描述,ASP從Flash中取出資料的方法:
Request.QueryString(“flash_var_1")
執行個體製作
下面我們就以電話查詢為例,製作一個網頁。
1.建立資料庫
開啟ACCESS 2000,建立名為yjytelep.mdb的資料庫,設計一個本單位職工電話情況的表,表名為yjytelep,格式如下:
將表和資料庫儲存到指定目錄中,如C:\testasp\。
2.用Flash製作網頁
①開啟Flash 4,在Frame 1中建立電話查詢的畫面,如圖2。在文本編輯框上右擊滑鼠→Properties→Varible輸入變數名namestr;為阻止動畫向下播放,在Frame 1→Properties→Action中選“STOP”,這樣,只有當你輸入姓名並按 “查詢”按鈕,動畫才繼續播放。“查詢”按鈕上右擊滑鼠→Properties→Action描述為:
On( Release)
Go to and Play (2)
End On
②建立Frame 2,是一個blank keyframe,Action描述為:
Load variables (“yjytelep.asp", 0, vars=GET)
③Frame 3-8建立的是一個動畫,告訴使用者ASP程式正在執行查詢,如圖3所示。
Frame 3的Action描述為:
If (handnum ne“")
Go to and Stop (9)
End If
Frame 8的Action描述為:
Go to and Play (3)
這樣,只有ASP程式查詢了所有的記錄並返回一個完整的記錄時,才執行Frame 9。
④Frame 9為結果畫面,如圖4所示。
在“姓名”下方建立5個文本編輯框,其變數名分別為 name、utelnum、ptelnum、callnum、handnum。建立一個“返回再查”的按鈕,Action 描述為:
On (Release)
Go to and Stop (1)
End On
⑤儲存這個Flash檔案在C:\testasp中,檔案名稱為: yjytelep.fla。然後點擊File→Publish,產生yjytelep.html和 yjytelep.swf。到此,Flash的工作已經做完,接下來要編寫ASP程式了。
3.編寫ASP程式
開啟記事本,輸入以下程式並將其儲存到C:\testasp中,檔案名稱為:yjytelep.asp。
< %@Language=“VBScript"% >
< %
Dim oRS, oConn
Set oRS = Server.CreateObject(“ADODB.Recordset")
Set oConn= Server.CreateObject
(“ADODB.Connection") oConn.ConnectionString =
“Driver={Microsoft Access Driver (*.mdb)};DBQ=
”& Server.MapPath(“yjytelep.mdb")
oConn.Open
oRS.Open “SELECT * FROM yjytelep", oConn, 2, 3
oRS.Find “Name= ‘" & Request.QueryString
(“namestr") & “'"
If oRS.EOF Then
Response.Write “Name=查無此人&utelnum=-&ptelnum=
-&callnum=-&handnum=-"
Else
Response.Write “Name=" & Server.URLEncode(oRS
(“Name")) & “&utelnum=" & Server.URLEncode
(oRS(“utelnum")) & “&ptelnum=" & Server.URLEncode
(oRS(“ptelnum"))& “&callnum=" & Server.URLEncode
(oRS(“callnum"))& “&handnum=" & Server.URLEncode
(oRS(“handnum"))
End If
oRS.Close
Set oRS = Nothing
oConn.Close
Set oConn = Nothing
% >
4.執行查詢
由於ASP程式只能在伺服器端執行,所以一定要啟動你的PWS或IIS,並將C:\testasp設為一個Web網站,否則將是一個沒有結果的動畫。好了,快點在你的瀏覽器中鍵入http://localhost/testasp/yjytelep.html吧(localhost指主機網域名稱或IP 位址),其結果會令你耳目一新。