傳送資料集範例
更新: 2005 年 12 月 5 日
「傳送資料集」範例示範如何在伺服器端以 Common Language Runtime (CLR) 為基礎的預存程序內傳回以 ADO.NET 為基礎的資料集,作為用戶端的結果集。例如,當這種預存程序使用查詢的結果填入資料集,然後操作該資料集所包含的資料時,這個範例很有幫助。另外,如果預存程序重新建立及擴展資料集,這也很有幫助。
此範例包含兩個類別:DataSetUtilities 和 TestSendDataSet。DataSetUtilities 類別上的 SendDataSet 方法實作一種通用方式,來傳輸資料集執行個體的內容給用戶端。定義在 TestSendDataSet 類別上的 DoTest 方法確認 SendDataSet 方法可以運作的方式,是建立資料集並以 usp_GetTwoBOMTestData Transact-SQL 預存程序中的資料填入其中。usp_GetTwoBOMTestData 執行 Transact-SQL 預存程序 uspGetBillOfMaterials 兩次,遞迴地查詢已指定為 usp_GetTwoBOMTestData 預存程序參數之兩種產品的用料單 (BOM)。通常,在填入資料集之後,在呼叫 SendDataSet 來傳遞資料集內的資料作為用戶端的結果集之前,會先修改資料。為了簡單起見,此範例只傳回資料而不做修改。
安裝目錄:drive:\Program Files\Microsoft SQL Server\90\Samples\Engine\Programmability\CLR\SendDataSet\
狀況
Jane 是 Adventure Works Cycles 的開發人員。她使用以 CLR 為基礎的預存程序之一將資訊收集到資料集,並想要將該資料集所包含的資訊傳回至用戶端應用程式。
語言
Transact-SQL、Visual C# 和 Visual Basic。
功能
「傳送資料集」範例使用 SQL Server 的下列功能。
應用程式區 | 功能 |
---|---|
整體 |
CLR、中繼資料、資料集、預存程序、CTE |
必要條件
執行此範例之前,請確定已安裝下列軟體:
- Microsoft SQL Server 2005 或 Microsoft SQL Server 2005 Express Edition (SQL Server Express)。您可以從「SQL Server 2005 Express Edition 文件集和範例」網站中免費取得 SQL Server Express
- SQL Server 2005 中包含的 AdventureWorks 資料庫,也可以從 SQL Server 開發人員網站取得。
- SQL Server 2005 Database Engine 範例。SQL Server 2005 中隨附這些範例。您可以從 SQL Server 開發人員網站下載最新版的範例。
- .NET Framework SDK 2.0 或 Microsoft Visual Studio 2005。您可以免費取得 .NET Framework SDK。請參閱<安裝 .NET Framework SDK>。
建立範例
如果您尚未建立強式名稱金鑰檔,請利用下列指示產生金鑰檔。
若要產生強式名稱金鑰檔
開啟 Microsoft Visual Studio 2005 命令提示字元。按一下 [開始],依序指向 [程式集] 和 [Microsoft .NET Framework SDK 2.0],然後按一下 [SDK 命令提示字元]。
-- 或 --
開啟 Microsoft .NET Framework 命令提示字元。按一下 [開始],依序指向 [所有程式] 和 [Microsoft .NET Framework SDK 2.0],然後按一下 [SDK 命令提示字元]。
使用變更目錄命令 (CD),將命令提示字元視窗的現行目錄切換到範例的安裝資料夾。
附註: 若要判斷範例所在的資料夾,按一下 [開始] 按鈕,依序指向 [所有程式]、[Microsoft SQL Server] 和 [文件集和教學課程],然後按一下 [範例目錄]。如果是使用預設安裝位置,則範例位於 <system_drive>:\Program Files\Microsoft SQL Server\100\Samples。 在命令提示字元中,執行下列其中一個命令來產生金鑰檔:
sn -k SampleKey.snk
重要事項: 如需有關強式名稱金鑰組的詳細資訊,請參閱 MSDN 中 .NET Development Center 中的<Security Briefs: Strong Names and Security in the .NET Framework>。
若要建立傳送資料集範例
編譯範例的方法為使用 Visual Studio 2005 及所提供的 Visual Studio 方案,或使用包含在 .NET Framework SDK 2.0 中的 Microsoft MSBuild。在命令提示字元中執行下列命令:
msbuild /nologo /verbosity:quiet /property:Configuration=Debug CS\ SendDataSet.sln
請確定已安裝 AdventureWorks 資料庫。
如果您沒有在預設位置安裝 SQL Server Database Engine 範例,請修改 Scripts\InstallCS.sql 和 Scripts\InstallVB.sql 中指令碼之 CREATE ASSEMBLY 部分的路徑,以參考安裝範例的位置。
如果您不是正在使用之 SQL Server 執行個體的管理員,則必須讓管理員授與您 CreateAssembly 權限來完成安裝。
在 Microsoft SQL Server Management Studio 中,根據您所編譯的是 Visual C# 專案還是 Visual Basic 專案,來開啟 scripts\installCS.sql 或 scripts\installVB.sql 檔案。執行檔案中所包含的指令碼,或在 [命令提示字元] 視窗中執行下列命令:
sqlcmd -E -I -i Scripts\InstallCS.sql
執行範例
若要執行傳送資料集範例
在 Management Studio 開啟 scripts\test.sql 檔案,並執行該檔案所包含的指令碼。或者,在命令提示字元視窗中執行下列命令:
sqlcmd -E -I -i Scripts\test.sql
移除範例
若要移除傳送資料集範例
在 Management Studio 開啟 scripts\cleanup.sql 檔案,並執行該檔案所包含的指令碼。或者,在命令提示字元視窗中執行下列命令:
sqlcmd -E -I -i Scripts\cleanup.sql
註解
必須啟用 SQL Server 2005 或 SQL Server Express 的 CLR,才能讓此範例正常運作。
範例只供教育目的之用。它們不能用於實際執行環境,而且尚未在實際執行環境中測試過。Microsoft 不提供對這些範例的技術支援。若沒有系統管理員的權限,就不應該在生產 SQL Server 資料庫或報表伺服器上,連接或使用範例應用程式及組件。