將資料從伺服器提取到用戶端
遠端資料存取的初始化通常是透過將資料從 Microsoft SQL Server 提取到 SQL Server 2005 Compact Edition (SQL Server Compact Edition) 用戶端資料庫。當資料從伺服器提取到用戶端時,提取作業是由 SQL Server Compact Edition 初始化。SQL Server Compact Edition 會從 SQL Server 資料庫擷取資料,然後將資料儲存在 SQL Server Compact Edition 資料庫的資料表中。
若要從伺服器提取資料,可以使用程式設計的方式在應用程式中設定 RDA。使用任一技術設定及初始化提取作業時,將會指定下列項目:
- 要從中提取資料的資料庫
- 連接到 Web 伺服器時所需的 Web 伺服器驗證。
- 所用的 SQL Server 驗證
- 要複製並傳播到用戶端的資料表
- 包含追蹤與錯誤資料表的提取選項。
追蹤
應用程式可透過設定適當的追蹤選項,追蹤 SQL Server Compact Edition 資料表上所做的變更。SQL Server Compact Edition 會追蹤所有插入、更新與刪除動作。
然後應用程式就可以呼叫 Push 方法,將變更傳播回原始的 SQL Server 資料表。
以遠端資料存取 (RDA) 追蹤的提取及發送作業使用開放並行控制,SQL Server 不會將提取記錄保持鎖定。當應用程式呼叫 Push 時,本機 SQL Server Compact Edition 資料庫的變更將無條件套用到 SQL Server 資料庫。如此可能使 SQL Server 資料庫的其他使用者所做的變更遺失。
當更新的記錄是邏輯的分割,且不易發生衝突時,應該使用追蹤 Pull 及 Push 方法。例如,追蹤 Pull 和 Push 方法可能會被用於欄位服務應用程式,以追蹤每個擁有唯一服務電話清單的技術人員。
RDA_TRACKOPTION 指定 SQL Server Compact Edition 是否應追蹤對提取資料表所做的變更。如果您要在 Windows Mobile 為基礎的裝置上更新提取資料表,然後將變更記錄發送回原始的 SQL Server 資料表,請指定 TRACKINGON 或 TRACKINGON_INDEXES。在指定 TRACKINGON 之後,會在提取資料表上建立 PRIMARY KEY 條件約束。在指定 TRACKINGON_INDEXES 之後,會在提取資料表上建立伺服器資料表上存在的 PRIMARY KEY 條件約束與其他索引。在這兩種情況下,SQL Server Compact Edition 都會追蹤在本機資料表中插入、更新或刪除的每一筆記錄。
附註: |
---|
只有在提取構成索引的資料行時,才會建立索引。參考完整性條件約束不會在提取資料表上建立,因為相關資料表不一定存在於 SQL Server Compact Edition 資料庫中,這些資料表必須在應用程式內以程式碼新增回來。 |
當應用程式呼叫 Push 方法時,SQL Server Compact Edition 會使用變更的追蹤資訊在本機的 SQL Server Compact Edition 資料表中尋找插入、更新與刪除的記錄,並且將這些變更傳播回 SQL Server 資料表。
當 RDA_TRACKOPTION 設定為 TRACKINGON 或 TRACKINGON_INDEXES 時,會有以下限制:
如果 SELECT 陳述式傳回不可更新的記錄集,就會發生錯誤。
SELECT 陳述式傳回的可更新記錄集上,必須定義主索引鍵。SELECT 陳述式可以參考檢視或預存程序,但檢視和預存程序必須只參考一個資料表,並且必須可以更新。
在指定 TRACKINGON_INDEXES 之後,會根據 LocalTableName 中所指定的 SQL Server Compact Edition 本機資料表,建立存在於 SQL Server 資料表的索引,這會與 SQLSelectString 中所指定的資料行相關。