語句|執行 在學會了SELECT語句的構造和用途之後你就該學習如何使用它了。在你所掌握的資料庫工具下,這可能意味著你得按下某個寫著“執行”字樣的按鈕。在ASP網頁上,可以立即執行SQL語句也可以當作預存程序調用。
一旦建立了SQL 陳述式,你還得設法訪問其查詢結果。顯然,這裡的關鍵就是ASP recordset。在使用非SQL的recordset時,建立recordset的代碼通常如下所示:
Dim objRec
Set objRec = Server.CreateObject ("ADODB.Recordset")
objRec.Open "customers", objConn, 0, 1, 2
如果你對ASP比較熟悉以上的代碼對你可就不陌生了,你應該知道“customers”表示你開啟資料庫內一個資料表的名字。
開啟recordset
為了充分利用你更為熟悉的SQL技能,你需要調整常規ASP網頁上最常採用的recordset:
Dim objRec
Set objRec = Server.CreateObject ("ADODB.Recordset")
objRec.Open SQL, objConn, 0, 1, 2
這裡唯一的修改就是在objRec.Open,之後用包含SQL語句的變數代替了要查詢的資料表的名稱。
這種方法的優點之一是你可以指定遊標類型(如以上0, 1 ,2 所示)。
執行SQL
你可以用緊湊的一行代碼執行SQL語句來建立recordset。以下是文法:
Dim objRec
set objRec = objConn.Execute(SQL)
在上例中,你所看到的SQL是你存放自己SQL SELECT 語句的變數。該程式碼“運行”SQL語句(或者說對資料庫進行查詢),選取資料並把資料存放在recordset 內,在上例中就是變數objRec。這種方法的主要缺點是你不能選擇自己想採用的遊標類型。相反,recordset總是用前向遊標開啟。
因為遊標的緣故,你或許打算熟悉兩種建立recordset的方法。直接執行查詢節省了鍵入字元所消耗的時間,但那樣的話你就得採用預設的遊標了,這樣有可能遭遇經常不能正常啟動並執行毛病。不管你具體採用哪種辦法,兩者之間的最大的差別也不外乎代碼精練與否。在不考慮你取得什麼欄位、你的標準是什麼的前提下,也不管你如何儲存資料,採用SQL式的recordset 在體積上會比ASP上開啟的標準recordset 要小得多,更別提操作起來的簡易性了。畢竟,通過過濾資料,你消除了耗費時間的if-then 測試和可能用到的迴圈。
編寫測試用SQL
這裡有個技巧,許多專業ASP程式員習慣在測試網頁的時候“編寫”自己的SQL語句。這樣做可以協助你調試代碼,因為你可以從中看到傳遞給伺服器執行的字串。而你要做的無非是增加Response.WriteyourVariable 在螢幕上顯示有關資訊。在你把和SQL有關的問題提交給ASP討論群組的時候你就應該附上這些資訊。