AdventureWorks Cycles CLR 層
SQL Server 2005 的「AdventureWorks Cycles CLR 層」範例提供了一些有用的公用程式,以供構成基底 AdventureWorks 範例資料庫最上層的額外功能層。第一個公用程式會建立 AdventureWorks 資料庫所含各類人員的連絡記錄。使用 XML 指定連絡資訊,並將其傳遞至以 C# 為基礎的預存程序。第二個公用程式會使用 C# 定義 Currency 使用者自訂資料類型。此使用者自訂資料類型會封裝金額和文化特性,這樣做有助決定將金額轉譯成該文化特性中之貨幣值的正確方式。第三個公用程式提供貨幣轉換函數,該函數會傳回 Currency 使用者自訂資料類型的執行個體。如果 AdventureWorks 資料庫具有從美元 (USD) 到與指定文化特性相關聯之貨幣的轉換比率,則轉換函數會傳回具有轉換比率和符合文化特性要求之文化特性的 Currency 使用者自訂資料類型。否則,會傳回具有使用 en-us 文化特性以 USD 計算之原始金額的 Currency 使用者自訂資料類型。公用程式還會示範如何使用 Transact-SQL 取消註冊和註冊 Common Language Runtime (CLR) 方法與組件。
附註: |
---|
在此範例中使用的匯率是虛構的,不可用於實際的財務交易。 |
預設安裝目錄為 <drive>:\Program Files\Microsoft SQL Server\90\Samples\Engine\Programmability\CLR\AdventureWorks。
狀況
- 開發人員需要一種簡易方法來以不同貨幣表示、保存和操作不同的貨幣金額。
- 開發人員需要一種簡易方法來建立新的員工、個別客戶、商店客戶及供應商的連絡資訊,並將此資訊與儲存在 AdventureWorks 資料庫中的其他資訊相關聯。
語言
Transact-SQL、Visual C# 和 Visual Basic。
功能
SQLCLR 層範例使用 SQL Server 2005 的下列功能。
應用程式區 | 功能 |
---|---|
連絡人 |
XML |
貨幣、ConvertCurrency |
CLR UDT、CLR 使用者自訂函數 (UDF) |
必要條件
執行此範例之前,請確定已安裝下列軟體:
- SQL Server 2005 或 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>。
建立範例
如果您尚未建立強式名稱金鑰檔 SampleKey.snk 和 UnsafeSampleKey.snk,請利用下列指示產生金鑰檔。
若要產生強式名稱金鑰檔
開啟 Microsoft Visual Studio 2005 命令提示字元。按一下 [開始],依序指向 [所有程式]、[Microsoft Visual Studio 2005] 和 [Visual Studio 工具],然後按一下 [Visual Studio 2005 命令提示字元]。
- 或 -
開啟 .NET Framework 命令提示字元。按一下 [開始],依序指向 [所有程式] 和 [Microsoft .NET Framework SDK 2.0],然後按一下 [SDK 命令提示字元]。
在命令提示字元中,使用變更目錄 (CD) 命令,將 [命令提示字元] 視窗的目前資料夾變更為 Samples 資料夾。
附註: 若要判斷範例所在的資料夾,按一下 [開始],依序指向 [所有程式]、[Microsoft SQL Server 2005] 和 [文件集和教學課程],然後按一下 [範例目錄]。如果是使用預設安裝位置,則範例位於 <system_drive>:\Program Files\Microsoft SQL Server\90\Samples。 在命令提示字元中,執行下列其中一個命令來產生金鑰檔:
sn -k SampleKey.snk
sn -k UnsafeSampleKey.snk
重要事項: 如需有關強式名稱金鑰組的詳細資訊,請參閱 MSDN 中 .NET Development Center 中的<Security Briefs: Strong Names and Security in the .NET Framework>。
若要建立範例,請執行下列動作:
建立範例
使用 Visual Studio 2005 和已提供的 Visual Studio 方案,或使用 Microsoft MSBuild (隨附於 .NET Framework SDK 2.0) 來編譯範例。在命令提示字元中執行下列命令:
msbuild /nologo /verbosity:quiet /property:Configuration=Debug CS\AdventureWorksCS.sln
請確定已安裝 AdventureWorks 資料庫。
如果您沒有在預設位置安裝 SQL Server Database Engine 範例,則請修改 Scripts\InstallCS.sql 中指令碼之 CREATE ASSEMBLY 部分的路徑,以參考已安裝範例的位置。
如果您不是正在使用之 SQL Server 執行個體的管理員,則必須讓管理員授與您 CreateAssembly 權限來完成安裝。
在 SQL Server Management Studio 中,根據您所編譯的是 Visual C# 專案還是 Visual Basic 專案,來開啟 scripts\installCS.sql 或 scripts\installVB.sql 檔案。執行檔案中所包含的指令碼,或在命令提示字元中執行下列命令:
sqlcmd -E -I -i Scripts\InstallCS.sql
此指令碼會執行下列動作:
- 移除任何將被定義的預存程序,如果存在的話。
- 卸除組件註冊,如果已經存在的話。
- 註冊組件。
- 註冊 CLR 預存程序。
執行範例
若要執行範例,請執行下列動作:
執行範例
在 Management Studio 中載入 Scripts\test.sql 檔案並執行它。或者,在命令提示字元中執行下列命令:
sqlcmd -E -I -i Scripts\test.sql
移除範例
使用下列程序移除「SQLCLR 層」範例:
移除範例
在 Management Studio 中載入並執行 Scripts\cleanup.sql。或者,在命令提示字元中執行下列命令:
sqlcmd -E -I -i Scripts\cleanup.sql
註解
必須啟用 SQL Server 2005 或 SQL Server 2005 Express Edition 的 CLR,才能讓此範例正常運作。
範例只供教育目的之用。它們不能用於實際執行環境,而且尚未在實際執行環境中測試過。Microsoft 不提供對這些範例的技術支援。若沒有系統管理員的權限,就不應該在生產 SQL Server 資料庫或報表伺服器上,連接或使用範例應用程式及組件。
請參閱
工作
概念
說明及資訊
變更歷程記錄
版本 | 歷程記錄 |
---|---|
2005 年 12 月 5 日 |
|