Share via


JetOpenTable 函式

適用于: Windows |Windows Server

JetOpenTable 函式

JetOpenTable函式會在先前建立的資料表上開啟游標。

    JET_ERR JET_API JetOpenTable(
      __in          JET_SESID sesid,
      __in          JET_DBID dbid,
      __in          const tchar* szTableName,
      __in_opt      const void* pvParameters,
      __in          unsigned long cbParameters,
      __in          JET_GRBIT grbit,
      __out         JET_TABLEID* ptableid
    );

參數

sesid

要使用的資料庫會話內容。

dbid

要用來尋找資料表的資料庫識別碼。

szTableName

要開啟的資料表名稱。

pvParameters

已取代。 設定為 Null

cbParameters

已取代。 設定為 0 (零) 。

grbit

指定下列零個或多個選項的位群組。

意義

JET_bitTableDenyRead

無法開啟資料表供另一個資料庫會話讀取存取。

JET_bitTableDenyWrite

無法開啟資料表以供另一個資料庫會話進行寫入存取。

JET_bitTableNoCache

請勿快取此資料表的頁面。

JET_bitTablePermitDDL

允許在標示為 FixedDDL 的資料表上進行 DDL 修改。 此選項必須與 JET_bitTableDenyRead 選項搭配使用。

JET_bitTablePreread

提供一個提示,指出資料表可能不在緩衝區快取中,而且預先讀取對效能很有説明。

JET_bitTableReadOnly

要求對資料表的唯讀存取。

JET_bitTableSequential

資料表應該非常積極地從磁片預先擷取,因為應用程式會循序掃描它。

JET_bitTableUpdatable

要求資料表的寫入權限。

ptableid

成功時,指向資料表的識別碼。 失敗時, ptableid 的內容未定義。

傳回值

此函式會傳回具有下列其中一個傳回碼 的JET_ERR 資料類型。 如需可能 ESE 錯誤的詳細資訊,請參閱 可延伸的儲存引擎錯誤錯誤處理參數

傳回碼

Description

JET_errSuccess

作業已成功完成。

JET_errInvalidDatabaseId

dbid 不是有效的資料庫識別碼。

JET_errInvalidgrbit

已傳入 grbit 的不良組合。

JET_errInvalidName

szTableName中指定的名稱無效。

如需有效資料表名稱的詳細資訊,請參閱JetCreateTable中的szTableName參數。

JET_errObjectNotFound

嘗試開啟資料庫中不存在的資料表。

JET_errOutOfCursors

作業失敗,因為引擎無法配置開啟新資料指標所需的資源。 請參閱<備註>一節。

JET_errTableInUse

資料表正由另一個資料庫作業使用。

JET_wrnTableInUseBySystem

指出系統正在使用資料表的非嚴重警告。

JET_errTableLocked

資料表會由另一個資料庫作業鎖定。

JET_errTooManyOpenTables

嘗試一次開啟太多唯一資料表。 請參閱<備註>一節。

備註

使用 JetOpenTable 開啟的資料表通常應該使用 JetCloseTable關閉。 當 JetOpenTable 在交易中呼叫,且交易會以 JetRollback) 回復 (時,就會發生此規則的例外狀況。 回復交易時,資料表會自動關閉。 在此情況下,使用 JetCloseTable關閉資料表時發生錯誤。

使用 JetOpenTable (開啟系統資料表是合法的,例如 MSysObjects、MSysUnicodeFixup) 。 系統資料表的架構可能會變更,因此不建議存取系統資料表。 可同時開啟的唯一資料表數目 會受到JET_paramMaxOpenTables直接影響。 如果資料表目前開啟,則會在資料表上建立新的資料指標。 資料指標資源是使用 JetSetSystemParameter 搭配 JET_paramMaxCursors來設定。 另請參閱 JetDupCursor

規格需求

需求

用戶端

需要 Windows Vista、Windows XP 或 Windows 2000 Professional。

Server

需要 Windows Server 2008、Windows Server 2003 或 Windows 2000 Server。

標頭

在 Esent.h 中宣告。

程式庫

使用 ESENT.lib。

Dll

需要ESENT.dll。

Unicode

實作為 JetOpenTableW (Unicode) 和 JetOpenTableA (ANSI) 。

另請參閱

JET_ERR
JET_GRBIT
JET_SESID
JET_TABLEID
JetCloseTable
JetDupCursor
JetRollback
JetSetSystemParameter
資源參數