Funzione JetRetrieveColumns
Si applica a: Windows | server Windows
Funzione JetRetrieveColumns
La funzione JetRetrieveColumns recupera più valori di colonna dal record corrente in una singola operazione. Una matrice di strutture JET_RETRIEVECOLUMN viene usata per descrivere il set di valori di colonna da recuperare e per descrivere i buffer di output per ogni valore di colonna da recuperare.
JET_ERR JET_API JetRetrieveColumns(
__in JET_SESID sesid,
__in JET_TABLEID tableid,
__in_out_opt JET_RETRIEVECOLUMN* pretrievecolumn,
__in unsigned long cretrievecolumn
);
Parametri
sesid
Sessione da utilizzare per questa chiamata.
tableid
Cursore da utilizzare per questa chiamata.
pretrievecolumn
Puntatore a una matrice di una o più strutture JET_RETRIEVECOLUMN . Ogni struttura include descrizioni del valore della colonna da recuperare e della posizione in cui archiviare i dati restituiti.
cretrievecolumn
Numero di strutture JET_RETRIEVECOLUMN nella matrice specificata da pretrievecolumn.
Valore restituito
Questa funzione restituisce il tipo di dati JET_ERR con uno dei codici restituiti seguenti. Per altre informazioni sui possibili errori ESE, vedere Extensible Archiviazione Engine Errors and Error Handling Parameters.For more information about the possible ESE errors errors, see Extensible Archiviazione Engine Errors and Error Handling Parameters.
Codice restituito |
Descrizione |
---|---|
JET_errSuccess |
Operazione riuscita. |
JET_errBadItagSequence |
Un valore di numero di sequenza di colonna multivalore non valido è stato passato in pretinfo-itagSequence>. I valori validi per i numeri di sequenza dei valori di colonna multivalore sono 1 o superiori. Il valore 0 (zero) è valido per questa funzione, ma non è valido per JetRetrieveColumn. |
JET_errBadColumnId |
L'ID di colonna specificato non rientra nei limiti legali di un ID di colonna. |
JET_errClientRequestToStopJetService |
Non è possibile completare l'operazione perché tutte le attività nell'istanza associata alla sessione sono cessate a seguito di una chiamata a JetStopService. |
JET_errColumnNotFound |
La colonna descritta dall'id colonna specificato non esiste nella tabella. |
JET_errIndexTuplesCannotRetrieveFromIndex |
Le colonne indicizzate come sottostringhe non possono essere recuperate dall'indice, perché solo una piccola parte della colonna è in genere presente in ogni voce di indice. |
JET_errInvalidBufferSize |
In alcuni casi, il buffer specificato per la colonna di recupero deve essere sufficientemente ridimensionato per restituire qualsiasi quantità del valore della colonna. Ad esempio, le colonne aggiornabili di deposito vengono modificate in modo da essere coerenti per il contesto transazionale della sessione chiamante e questa regolazione richiede il buffer fornito dal chiamante. Se viene fornito spazio buffer insufficiente, viene restituito JET_errInvalidBufferSize e non vengono restituiti dati di colonna. |
JET_errInvalidgrbit |
Le opzioni fornite sono sconosciute o una combinazione non valida di impostazioni di bit note. |
JET_errInvalidParameter |
Uno o più parametri specificati non sono corretti. Ciò può verificarsi se retinfo.cbStruct è minore della dimensione di JET_RETINFO. |
JET_errInstanceUnavailable |
Non è possibile completare l'operazione perché l'istanza associata alla sessione ha rilevato un errore irreversibile che richiede la revoca dell'accesso a tutti i dati per proteggere l'integrità dei dati. Windows XP: questo errore verrà restituito solo da Windows XP e versioni successive. |
JET_errNoCurrentRecord |
Il cursore non è posizionato su un record. I motivi possono essere diversi. Ad esempio, ciò si verifica se il cursore è attualmente posizionato dopo l'ultimo record nell'indice corrente. |
JET_errNotInitialized |
Non è possibile completare l'operazione perché l'istanza associata alla sessione non è ancora stata inizializzata. |
JET_errRestoreInProgress |
Non è possibile completare l'operazione perché è in corso un'operazione di ripristino nell'istanza associata alla sessione. |
JET_errSessionSharingViolation |
La stessa sessione non può essere usata contemporaneamente per più thread. Windows XP: questo errore verrà restituito solo da Windows XP e versioni successive. |
JET_errTermInProgress |
Non è possibile completare l'operazione perché l'istanza associata alla sessione viene arrestata. |
JET_wrnBufferTruncated |
Impossibile recuperare l'intero valore della colonna perché il buffer specificato è inferiore alle dimensioni della colonna. |
In caso di esito positivo, le dimensioni dei dati e delle colonne vengono restituite nei buffer forniti descritti nella matrice di strutture JET_RETRIEVECOLUMN . Se un itagSequence è stato impostato su 0 (zero) per indicare che il numero di istanze di un campo multivalore è stato desiderato anziché dati di colonna, il numero di istanze di una colonna multivalore viene restituito nel campo itagSequence stesso. Ogni struttura JET_RETRIEVECOLUMN contiene un campo di errore che contiene avvisi per la colonna recuperata. Se la colonna è stata impostata su NULL, il codice di errore verrà impostato su JET_wrnColumnNull.
In caso di errore, la posizione del cursore rimane invariata e non vengono copiati dati nel buffer specificato.
Commenti
JetRetrieveColumns supporta una funzionalità non supportata da JetRetrieveColumn . Si tratta della possibilità di recuperare il numero di istanze di una colonna multivalore. Lo scopo di questa funzionalità è consentire a un'applicazione di recuperare tutti i valori di una colonna. Questa operazione può essere eseguita determinando innanzitutto il numero di valori di una colonna. Successivamente, è possibile determinare le lunghezze chiamando JetRetrieveColumns con una struttura JET_RETRIEVECOLUMN allocata per ogni valore per determinare la lunghezza dei dati della colonna. A tale scopo, è possibile passare puntatori NULLpvData con cbMax pari a 0 (zero) e recuperare la lunghezza della colonna in cbActual. La terza e l'ultima chiamata possono essere effettuate con la memoria allocata per i dati del valore della colonna.
Se una colonna recuperata viene troncata a causa di un buffer di lunghezza insufficiente, l'API restituirà JET_wrnBufferTruncated. Tuttavia, altri errori, JET_wrnColumnNull vengono restituiti solo nel campo di errore in JET_RETRIEVECOLUMN. Il motivo è che le applicazioni spesso vogliono assicurarsi che tutti i dati siano stati recuperati e che venga restituito questo errore da JetRetrieveColumns facilita questa comprensione.
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. |
Vedere anche
JET_ERR
JET_SESID
JET_TABLEID
JET_RETRIEVECOLUMN
JetEnumerateColumns
JetRetrieveColumn
JetSetColumns