Readme_ShoppingCart
更新: 2005 年 12 月 5 日
「購物車」範例使用交談群組識別碼維護簡單購物車應用程式的狀態。該應用程式使用 ServiceBrokerInterface 範例。
依預設,「購物車」範例應用程式會安裝在 C:\Program Files\Microsoft SQL Server\100\Samples\Engine\\ServiceBroker\ShoppingCart。如果範例資料夾不存在,請參閱<安裝範例>。
範例只供教育目的之用。它們不能用於實際執行環境,而且尚未在實際執行環境中測試過。Microsoft 不提供對這些範例的技術支援。若沒有系統管理員的權限,就不應該在生產 SQL Server 資料庫或報表伺服器上,連接或使用範例應用程式及組件。
建立並安裝範例
在 Visual Studio 2005 中,開啟
ShoppingCartCS.sln
。按 [F6] 或從 [建立] 功能表中選取 [建立方案] 來建立方案。
開啟命令提示字元,找到
Scripts
資料夾並執行下列命令:install all
安裝指令碼會安裝應用程式的 SQL Server 物件。這包括實作 ShoppingCartService 服務的 Common Language Runtime (CLR) 預存程序。
執行範例
從範例目錄執行
ShoppingCartClient.exe
應用程式。為了簡化,用戶端每次執行時都只處理一個訂單。按一下 [建立訂單] 以建立訂單。從 [項目] 清單中選取項目,然後按一下 [加入項目] 按紐,這樣便可將項目加入至購物車。
您可以隨時按一下 [Service Broker 追蹤] 索引標籤來查看已傳送和已接收之 Service Broker 訊息的摘要。
ssb_ShoppingCart 資料庫中的 ShoppingList 和 StateTable 資料表維護應用程式的狀態。CLR 預存程序會依據用戶端的訊息來更新資料表。您可以使用 Management Studio 或 sqlcmd 檢查這些資料表。
解除安裝範例
開啟命令提示字元,找到
Scripts
資料夾並執行下列命令:uninstall all
解除安裝指令碼會移除應用程式的 SQL Server 物件。
需求
此範例需要 Visual Studio 2005。因為此範例使用舊版所沒有的 CLR 功能,所以 Visual Studio 2005 之前的版本無法建立此範例。
示範
Service Broker 應用程式最常將狀態儲存於裝載服務的資料庫中。當訊息到達時,應用程式會先從資料庫載入狀態,然後再處理訊息。
「Service Broker 介面」範例的 Service
類別提供了一種維護狀態的便利方法。此範例示範如何使用 Service 類別維護狀態。
若要使用 Service
類別維護狀態,您要實作應用程式中的兩個方法和 SQL Server 中的預存程序,如下表中所列:
項目 | 簽章 | 描述 |
---|---|---|
預存程序 |
|
傳回應用程式的狀態。此程序傳回的結果集必須包含交談群組識別碼。 |
公用方法 |
|
讀取預存程序提供的結果集,以還原狀態。此預存程序必須將交談群組識別碼儲存於類別中,因為 Service Broker 介面不會提供識別碼給 |
公用方法 |
|
將狀態儲存至資料庫。 |
此主題描述還原狀態的一般大綱。如需完整範例,請參閱<ShoppingCartService.cs
>。
預存程序必須接受交談群組識別碼,並傳回兩個結果集。第一個結果集包含交談群組識別碼本身。第二個結果集包含應用程式指定的狀態。此預存程序沒有固定名稱。相反地,您必須設定 AppLoaderProcName
屬性來提供此預存程序的名稱。Service Broker 介面只呼叫提供的預存程序。
LoadState
方法會還原應用程式的狀態。應用程式遵循的確切處理需視應用程式要求的狀態而定。方法會將 System.Data.Sql.SqlReader
的執行個體視為參數。SqlReader
包含預存程序傳回的結果集。通常,實作 LoadState
方法會更新 Service
類別的 State
屬性、將交談群組識別碼儲存於私用欄位中,然後將應用程式指定的狀態儲存於適當的資料結構中。例如,ShoppingCartService
會將有關項目、數量和價格的資訊儲存於 ShoppingCart
類別的私用執行個體中。
呼叫 LoadState
後,「Service Broker 基礎結構」會分派訊息。請注意,如果使用以屬性為基礎的訊息分派架構,除了訊息類型名稱之外,您還可以依據狀態屬性來分派訊息。在處理訊息的方法中,您可以讀取或更新在 LoadState
中建立的資料結構。
當訊息處理方法傳回時,「Service Broker 基礎結構」會呼叫 SaveState
方法。SaveState
方法使用 Service 類別的 Connection
屬性建立 SqlCommand
物件,然後使用該物件更新儲存在資料庫中的狀態。例如,ShoppingCartService
會刪除購物車中儲存的內容,然後將購物車的目前內容插入至資料庫。
變更歷程記錄
版本 | 歷程記錄 |
---|---|
2005 年 12 月 5 日 |
|