適用於 OLE DB 的 Microsoft 資料指標服務概觀
適用於 OLE DB 的 Microsoft 資料指標服務可補充資料提供者的資料指標支援功能。 因此,使用者可察覺來自所有資料提供者的相對統一功能。
資料指標服務讓動態屬性可供使用,並增強特定方法的行為。 例如,Optimize 動態屬性可允許建立暫存索引來協助特定作業,例如 Find 方法。
資料指標服務可在所有情況下支援批次更新。 當資料提供者只能提供較少的資料指標 (例如靜態資料指標) 時,也會模擬更強大的資料指標類型 (例如動態資料指標)。
關鍵字
若要叫用此服務元件,請將 Recordset 或 Connection 物件的 CursorLocation 屬性設定為 adUseClient。
connection.CursorLocation=adUseClient
recordset.CursorLocation=adUseClient
動態屬性
叫用 OLE DB 的資料指標服務時,下列動態屬性會新增至 Recordset 物件的 Properties 集合。 Connection 和 Recordset 物件動態屬性的完整清單列在 ADO 動態屬性索引中。 適當的相關聯 OLE DB 屬性名稱會包含在 ADO 屬性名稱之後的括弧中。
在叫用資料指標服務之後,基礎資料來源看不到某些動態屬性的變更。 例如,在 Recordset 上設定 Command Time out 屬性將不會對基礎資料提供者顯示。
Recordset1.CursorLocation = adUseClient 'invokes cursor service
Recordset1.Open "authors", _
"Provider=SQLOLEDB;Data Source=DBServer;User Id=MyUserID;" & _
"Password=<password>;Initial Catalog=pubs;",,adCmdTable
Recordset1.Properties.Item("Command Time out") = 50
' 'Command Time out' property on DBServer is still default (30).
如果您的應用程式需要資料指標服務,但您需要在基礎提供者上設定動態屬性,請在叫用資料指標服務之前先設定屬性。 不論資料指標位置為何,命令物件屬性設定一律會傳遞至基礎資料提供者。 因此,您也可以使用命令物件隨時設定屬性。
注意
即使基礎資料提供者支援動態屬性,資料指標服務仍不支援動態屬性 DBPROP_SERVERDATAONINSERT。
屬性名稱 | 描述 |
---|---|
自動重新計算 (DBPROP_ADC_AUTORECALC) | 對於使用資料成形服務建立的記錄集,此值會指出計算和匯總資料行的計算頻率。 預設 (value=1) 是每當資料成形服務判斷值已變更時,進行重新計算。 如果值為 0,則只有在最初建置階層時,才會計算導出或匯總資料行。 |
批次大小 (DBPROP_ADC_BATCHSIZE) | 指出可以在傳送至資料存放區之前批次處理的更新陳述式數目。 批次中的陳述式越多,資料存放區的來回行程越少。 |
快取子資料列 (DBPROP_ADC_CACHECHILDROWS) | 對於使用資料成形服務建立的記錄集,這個值會指出子記錄集是否儲存在快取中以供稍後使用。 |
資料指標引擎版本 (DBPROP_ADC_CEVER) | 指出所使用資料指標服務的版本。 |
維護變更狀態 (DBPROP_ADC_MAINTAINCHANGESTATUS) | 指出用來重新同步處理多個資料表聯結中一個或多個資料列的命令文字。 |
最佳化 | 指出是否應該建立索引。 當設定為 True 時,會授權暫時建立索引,以改善特定作業的執行。 |
調整形狀名稱 | 指出 Recordset 的名稱。 可以在目前或後續的資料成形命令內作為參考。 |
重新同步指令 | 指出當 Unique Table 屬性生效時,Resync 方法所使用的自訂命令字串。 |
唯一目錄 | 指出資料庫的名稱,其中包含 Unique Table 屬性中所參考的資料表。 |
唯一結構描述 | 指出 Unique Table 屬性中所參考資料表的擁有者名稱。 |
Unique Table | 指出從多個資料表建立的 Recordset 中,可藉由插入、更新或刪除來修改的一個資料表名稱。 |
更新準則 (DBPROP_ADC_UPDATECRITERIA) | 指出 WHERE 子句中的哪些欄位可用來處理更新期間發生的衝突。 |
更新重新同步處理 (DBPROP_ADC_UPDATERESYNC) | 指出當 Unique Table 屬性生效時,Resync 方法是否在 UpdateBatch 方法 (及其行為) 之後隱含叫用。 |
您也可以將動態屬性的名稱指定為 Properties 集合的索引,以設定或擷取動態屬性 。 例如,取得並列印 Optimize 動態屬性的目前值,然後設定新的值,如下所示:
Debug.Print rs.Properties("Optimize")
rs.Properties("Optimize") = True
內建屬性行為
OLE DB 的資料指標服務也會影響特定內建屬性的行為。
屬性名稱 | 描述 |
---|---|
CursorType | 補充 Recordset 可用的資料指標類型。 |
LockType | 補充 Recordset 可用的鎖定類型。 啟用批次更新。 |
排序 | 指定 Recordset 排序的一或多個功能變數名稱,以及每個欄位是以遞增或遞減順序排序。 |
方法行為
OLE DB 的資料指標服務會啟用或影響 Field 物件的 Append 方法的行為;和 Recordset 物件的 Open、 Resync、 UpdateBatch和 Save 方法。