Funzione JetSetColumns

Si applica a: Windows | Windows Server

Funzione JetSetColumns

La funzione JetSetColumns è simile al comportamento di JetSetColumn , ma consente a un'applicazione di impostare più valori di colonna in una singola operazione. Una matrice di strutture JET_SETCOLUMN viene usata per descrivere il set di valori di colonna da impostare e per descrivere i buffer di input per ogni valore di colonna da impostare.

    JET_ERR JET_API JetSetColumns(
      __in          JET_SESID sesid,
      __in          JET_TABLEID tableid,
      __in_out_opt  JET_SETCOLUMN* psetcolumn,
      __in          unsigned long csetcolumn
    );

Parametri

sesid

Sessione da usare per questa chiamata.

tableid

Cursore da usare per questa chiamata.

psetcolumn

Puntatore a una matrice di una o più strutture JET_SETCOLUMN . Ogni struttura include descrizioni del valore di colonna da impostare e da dove ottenere i dati di colonna da impostare.

csetcolumn

Numero di strutture JET_SETCOLUMN nella matrice specificata da psetcolumn.

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_errBadColumnId

L'ID colonna specificato è esterno ai limiti legali di un ID colonna.

JET_errClientRequestToStopJetService

Non è possibile completare l'operazione perché tutte le attività nell'istanza associata alla sessione non sono state interrotte in seguito a una chiamata a JetStopService.

JET_errColumnIllegalNull

Uguale a JET_errNullInvalid.

JET_errColumnNotFound

La colonna descritta dall'oggetto columnid specificato non esiste nella tabella.

JET_errColumnNotUpdatable

Un tentativo non valido è stato effettuato per aggiornare un valore lungo durante un'operazione di eliminazione di copia originale.

JET_errColumnTooBig

I dati del valore di colonna specificati nel buffer di input superano la limitazione delle dimensioni naturale per una colonna di lunghezza fissa o configurata per colonne di lunghezza fissa o binarie. Questo errore viene restituito anche quando si passano più di 1024 byte di dati per una colonna lunga e si imposta il flag di JET_bitSetIntrinsicLV.

JET_errInstanceUnavailable

Non è possibile completare l'operazione perché l'istanza associata alla sessione ha rilevato un errore irreversibile che richiede che l'accesso a tutti i dati venga revocato per proteggere l'integrità dei dati. Questo errore verrà restituito solo da Windows XP e versioni successive.

JET_errInvalidBufferSize

Le dimensioni dei dati del valore di colonna specificate non corrispondono a ciò che è naturale per il tipo di dati di lunghezza fissa.

JET_errInvalidColumnType

Un tentativo non valido è stato effettuato per aggiornare una colonna di incremento automatico durante un'operazione di inserimento o aggiornamento o per aggiornare una colonna di versione durante un'operazione di sostituzione.

JET_errInvalidgrbit

Le opzioni fornite sono sconosciute o una combinazione illegale di impostazioni di bit note.

JET_errInvalidParameter

Il valore psetinfo-cbStruct> specificato non è una dimensione valida per la struttura JET_SETINFO .

JET_errMultiValuedDuplicate

L'operazione di colonna set ha tentato di creare un valore duplicato e specificato JET_bitSetUniqueMultiValues o JET_bitSetUniqueNormalizedMultiValues.

JET_errNotInitialized

Non è possibile completare l'operazione perché l'istanza associata alla sessione non è ancora stata inizializzata.

JET_errNotInTransaction

Un tentativo non valido è stato effettuato per aggiornare un valore di colonna lungo quando la sessione chiamante non era in una transazione.

JET_errNullInvalid

È stato eseguito un tentativo non valido per impostare una colonna non NULL su NULL.

JET_errRecordTooBig

Impossibile impostare il valore della colonna sul valore nel buffer di input perché il record ha superato la limitazione delle dimensioni della pagina. Le colonne di tipo JET_coltypLongText o JET_coltypLongBinary possono essere archiviate separatamente dai dati dei record rimanenti. Tuttavia, altre colonne devono essere archiviate con il record e possono causare il superamento della limitazione delle dimensioni del record. Anche le colonne lunghe richiedono 5 byte di spazio all'interno del record come collegamento e questo può portare anche a JET_errRecordTooBig restituito.

JET_errRestoreInProgress

Non è possibile completare l'operazione perché un'operazione di ripristino è in corso nell'istanza associata alla sessione.

JET_errSessionSharingViolation

La stessa sessione non può essere usata contemporaneamente per più thread. 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_errUpdateNotPrepared

Il cursore non è attualmente in corso nel processo di inserimento di un nuovo record o dell'aggiornamento di un record esistente.

JET_wrnColumnMaxTruncated

Il valore di colonna nel buffer di input ha superato la lunghezza massima configurata per una colonna di lunghezza variabile e è stata troncata.

In caso di esito positivo, per ogni colonna descritta nei psetcolumns, la parte desiderata del valore di colonna viene impostata con i dati copiati dal buffer di input. Il set di dati di colonna potrebbe essere stato troncato se ha superato la lunghezza massima specificata per una colonna di lunghezza variabile.

In caso di errore, la posizione del cursore viene lasciata invariata e non vengono aggiornati dati del valore di colonna nel buffer di copia.

Commenti

Se un'operazione di colonna del set singola restituisce un errore, l'intera operazione JetSetColumns restituirà un errore. Gli avvisi, in generale, vengono restituiti nell'errore psetcolumns-error> e non nel codice restituito da questa funzione. Tuttavia, se l'ultimo set di colonne ha un avviso, questo avviso verrà restituito da JetSetColumns stesso.

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_COLTYP
JET_ERR
JET_SESID
JET_TABLEID
JET_SETCOLUMN
JetRetrieveColumns
JetSetColumn