Funzione JetOpenTable

Si applica a: Windows | Windows Server

Funzione JetOpenTable

La funzione JetOpenTable apre un cursore in una tabella creata in precedenza.

    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
    );

Parametri

sesid

Contesto della sessione di database da usare.

dbid

Identificatore di database da usare per trovare la tabella.

szTableName

Nome della tabella da aprire.

pvParameters

Deprecato. Impostare su NULL.

cbParameters

Deprecato. Impostare su 0 (zero).

grbit

Un gruppo di bit che specificano zero o più delle opzioni seguenti.

Valore

Significato

JET_bitTableDenyRead

Impossibile aprire la tabella per l'accesso in lettura da un'altra sessione del database.

JET_bitTableDenyWrite

Impossibile aprire la tabella per l'accesso in scrittura da un'altra sessione di database.

JET_bitTableNoCache

Non memorizzare nella cache le pagine per questa tabella.

JET_bitTablePermitDDL

Consente la modifica DDL nelle tabelle contrassegnate come FixedDDL. Questa opzione deve essere usata con l'opzione JET_bitTableDenyRead.

JET_bitTablePreread

Fornisce un suggerimento che la tabella non è probabilmente nella cache del buffer e che la pre-lettura può essere utile per le prestazioni.

JET_bitTableReadOnly

Richiede l'accesso in sola lettura alla tabella.

JET_bitTableSequential

La tabella deve essere molto aggressivamente recuperata dal disco perché l'applicazione lo analizza in sequenza.

JET_bitTableUpdatable

Richiede l'accesso in scrittura alla tabella.

ptableid

In caso di esito positivo, punta all'identificatore della tabella. In caso di errore, il contenuto per ptableid non è definito.

Valore restituito

Questa funzione restituisce il tipo di dati JET_ERR con uno dei codici restituiti seguenti. Per altre informazioni sugli errori ESE possibili, vedere Errori del motore di archiviazione estendibili e parametri di gestione degli errori.

Codice restituito

Descrizione

JET_errSuccess

Operazione riuscita.

JET_errInvalidDatabaseId

dbid non è un identificatore di database valido.

JET_errInvalidgrbit

Una combinazione errata di grbit è stata passata.

JET_errInvalidName

Il nome specificato in szTableName non è valido.

Per altre informazioni sui nomi di tabella validi, vedere il parametro szTableName in JetCreateTable.

JET_errObjectNotFound

È stato eseguito un tentativo di aprire una tabella che non esiste nel database.

JET_errOutOfCursors

Operazione non riuscita perché il motore non può allocare le risorse necessarie per aprire un nuovo cursore. Vedere la sezione relativa alle osservazioni.

JET_errTableInUse

La tabella viene usata da un'altra operazione di database.

JET_wrnTableInUseBySystem

Avviso non irreversibile che indica che la tabella viene usata dal sistema.

JET_errTableLocked

La tabella è bloccata da un'altra operazione di database.

JET_errTooManyOpenTables

Un tentativo è stato fatto per aprire troppe tabelle univoce contemporaneamente. Vedere la sezione relativa alle osservazioni.

Commenti

Le tabelle aperte con JetOpenTable devono in genere essere chiuse con JetCloseTable. L'eccezione a questa regola si verifica quando JetOpenTable viene chiamato in una transazione e la transazione viene eseguito il rollback (con JetRollback). Quando si esegue il rollback di una transazione, la tabella viene chiusa automaticamente. In questo caso, si tratta di un errore per chiudere la tabella con JetCloseTable.

È legale aprire tabelle di sistema con JetOpenTable , ad esempio MSysObjects, MSysUnicodeFixup. Lo schema delle tabelle di sistema può cambiare, quindi l'accesso alle tabelle di sistema è sconsigliato. Il numero di tabelle univoce che possono essere aperte simultaneamente è interessato direttamente dalla JET_paramMaxOpenTables. Se la tabella è attualmente aperta, verrà creato un nuovo cursore nella tabella. Le risorse del cursore vengono configurate usando JetSetSystemParameter con JET_paramMaxCursors. Vedere anche JetDupCursor.

Requisiti

Requisito Valore

Client

Richiede Windows Vista, Windows XP o Windows 2000 Professional.

Server

Richiede Windows Server 2008, Windows Server 2003 o Windows 2000 Server.

Intestazione

Dichiarato in Esent.h.

Libreria

Usare ESENT.lib.

DLL

Richiede ESENT.dll.

Unicode

Implementato come JetOpenTableW (Unicode) e JetOpenTableA (ANSI).

Vedere anche

JET_ERR
JET_GRBIT
JET_SESID
JET_TABLEID
JetCloseTable
JetDupCursor
JetRollback
JetSetSystemParameter
Parametri delle risorse