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