在許多網頁上,用戶都可以通過簡單地選擇列表中的一項來輸入一個國家或州的名字,在大多數情況下,我們通常使用asp來生成這個列表,創建生成這個列表的函數並把它們保存在一個Include文件中。然而,ASP需要額外的時間在服務器上加載並處理這些Include文件,此外,每次生成一個選擇列表時,服務器都必須加載整個Include文件。
在最近為一個客戶建立網站時,我有了一個新的想法,把這些函數放在存儲過程而不是Include文件中,讓存儲過程來生成選擇清單。下面的代碼將生成一個選擇清單的記錄。
首先,使用T-SQL的串聯功能建立一個從記錄集中生成選擇清單的Select語句:
Alter PRocedure "getOptionListStates"
As
select (''
+ rtrim( FullName) + '')
as OptionList from states
執行getOptionListStates存儲過程可以生成下面的記錄:
North Carolina
South Carolina
Washington
Virginia
當然,還可以直接把選擇列表放在數據庫中。
接下來可以修改存儲過程返回一個包含全部選擇列表元素的單一變量,然後把這一變量返回給Html的Select語句即可。
雖然沒有詳細地比較使用存儲過程和ASP這兩種方法之間在性能上的差異,但我發現使用存儲過程這種技術最有趣的地方是可以使用SQL Server自動地生成一部分以前我們需要在ASP中完成的Html代碼,采用這種混合方式生成ASP代碼在性能和靈活性上要優於純ASP代碼。例如,一旦建立了一個存儲過程,就可以很方便地在不同的應用中進行調用,甚至是在不同服務器上的應用中進行調用,如果把所有的代碼都放在Include文件中要做到這一點是很困難的。