JetRetrieveColumn-Funktion

Letzte Änderung: Freitag, 27. Februar 2015

Gilt für: Windows | Windows Server

JetRetrieveColumn-Funktion

Die Funktion JetRetrieveColumn Ruft einen einspaltigen Wert aus dem aktuellen Datensatz. Der Datensatz ist dieser Datensatz verknüpft ist, mit dem Indexeintrag an der aktuellen Position des Cursors. Diese Funktion können Sie eine Spalte aus einem Datensatz in den Kopierpuffer Cursor erstellt abrufen. Diese Funktion kann auch Daten aus einem Indexeintrag abrufen, die auf den aktuellen Datensatz verweist. Zusätzlich zum Abrufen des aktuellen Spaltenwerts, können JetRetrieveColumn auch verwendet werden, zum Abrufen der Größe einer Spalte vor dem Abrufen der Spaltendaten selbst, damit Anwendung Puffer entsprechend vergrößert werden können.

JET_ERR JET_API JetRetrieveColumn(
  __in          JET_SESID sesid,
  __in          JET_TABLEID tableid,
  __in          JET_COLUMNID columnid,
  __out_opt     void* pvData,
  __in          unsigned long cbData,
  __out_opt     unsigned long* pcbActual,
  __in          JET_GRBIT grbit,
  __in_out_opt  JET_RETINFO* pretinfo
);

Parameter

sesid

Die Sitzung für diesen Aufruf verwenden.

Tabellen-ID

Der Cursor für diesen Aufruf verwenden.

Spalten-ID

Die JET_COLUMNID der Spalte abgerufen.

Spalten-ID der Wert 0 (null) kann zugewiesen werden, die sich nicht auf eine einzelne Spalte bezieht. Spalten-ID 0 (null) angegeben wird, werden alle markierten Spalten mit geringer Dichte, und mehrwertige Spalten als einzelne Spalte behandelt. Dies erleichtert das Abrufen aller Spalten mit geringer Dichte, die in einem Datensatz vorhanden sind.

pvData

Der Ausgabepuffer, der Wert der Spalte empfängt.

cbData

Die maximale Größe des Ausgabepuffers in Bytes.

pcbActual

Empfängt die tatsächliche Größe der Wert der Spalte in Bytes.

Wenn dieser Parameter NULList, wird die tatsächliche Größe des Spaltenwerts nicht zurückgegeben werden.

JET_errInvalidGrbit

Eine Gruppe von Bits, die Optionen für diesen Aufruf enthalten die 0 (null) oder mehr der folgenden enthalten:

Wert

Bedeutung

JET_bitRetrieveCopy

Dieses Flag veranlasst abrufen-Spalte den geänderten Wert anstelle des ursprünglichen Werts abgerufen. Wenn der Wert nicht geändert wurde, wird der ursprüngliche Wert abgerufen. Auf diese Weise kann ein Wert, der noch nicht eingefügt oder aktualisiert wurden während des Betriebs der einfügen oder Aktualisieren eines Datensatzes abgerufen werden.

JET_bitRetrieveFromIndex

Diese Option wird verwendet, um Spaltenwerte aus dem Index, wenn möglich, ohne Zugriff auf den Datensatz abzurufen. Auf diese Weise kann unnötige Laden von Datensätzen vermieden werden, wenn erforderliche Daten aus Indexeinträge selbst verfügbar sind. In Fällen, in denen aufgrund irreversible Transformationen oder Abschneiden von Daten, der ursprünglichen Spaltenwert aus dem Index abgerufen werden kann nicht, der Datensatz zugegriffen wird und die Daten abgerufen, wie gewohnt. Dies ist eine Option für die Leistung und sollte nur angegeben werden, wenn zu erwarten ist, dass der Wert der Spalte aus dem Index abgerufen werden kann. Diese Option sollte nicht angegeben werden, wenn Sie der aktuelle Index den gruppierten Index, seit die Indexeinträge für die Cluster- oder primären Index sind die Datensätze selbst. Dieses Bit kann nicht festgelegt werden, wenn JET_bitRetrieveFromPrimaryBookmark festgelegt wurde.

JET_bitRetrieveFromPrimaryBookmark

Diese Option wird verwendet, um Spaltenwerte aus der Textmarke Index abrufen und möglicherweise unterscheiden sich von den Indexwert erscheint eine Spalte im primären Index und den aktuellen Index. Diese Option sollte nicht bei der aktuelle Index der Cluster- oder primäre indizieren angegeben werden. Dieses Bit kann nicht festgelegt werden, wenn JET_bitRetrieveFromIndex festgelegt wurde.

JET_bitRetrieveTag

Diese Option wird verwendet, um die Sequenz abzurufen eine mehrwertige Spalte Wert in Pretinfo -> ItagSequence. Das Feld ItagSequence ist i. d. r. einen Eingang für ein aus einem Datensatz mit mehreren Werten Spaltenwerte abrufen. Beim Abrufen von Werten aus einem Index ist es jedoch auch möglich den Indexeintrag mit einer bestimmten Sequenznummer zuordnen und diese Sequenznummer sowie abrufen. Die laufende Nummer abrufen kann ein kostspieliger Vorgang und sollte nur bei Bedarf ausgeführt werden.

JET_bitRetrieveNull

Diese Option wird verwendet, um mehrwertige Spalte NULL -Werte abzurufen. Wenn diese Option nicht angegeben ist, werden die mehrwertige Spalte NULL -Werte automatisch übersprungen.

JET_bitRetrieveIgnoreDefault

Diese Option wirkt sich nur auf Spalten mit mehreren Werte und bewirkt, dass einen NULL -Wert zurückgegeben, wenn die angeforderte Sequenznummer 1 ist, und es keine feste Werte für die Spalte des Datensatzes gibt.

JET_bitRetrieveLongId

Dieses Flag ist nur zur internen Verwendung und ist nicht in Ihrer Anwendung verwendet werden soll.

JET_bitRetrieveLongValueRefCount

Dieses Flag ist nur zur internen Verwendung und ist nicht in Ihrer Anwendung verwendet werden soll.

JET_bitRetrieveTuple

Dieses Flag ermöglicht den Abruf eines Segments Tupel des Indexes. Dieses Bit muss mit JET_bitRetrieveFromIndex angegeben werden.

pretinfo

Wenn Pretinfo Geben Sie als NULL dann die Funktion verhält sich, als ob ein ItagSequence von 1 und ein IbLongValue von 0 (null) angegeben wurden. Dies bewirkt, dass Spalte abrufen, um den ersten Wert in einer Spalte mit mehreren Werten abzurufen, und zum Abrufen von long-Daten bei offset 0 (null).

Dieser Parameter wird verwendet, um eine oder mehrere der folgenden bereitzustellen:

Wert

Bedeutung

ibLongValue

Gibt eine Binärdatei, die in einer Spalte mit langen Wert ausgeglichen werden, wenn einen Teil einen Spaltenwert abrufen.

itagSequence

Gibt die laufende Nummer des gewünschten mehrwertige Spaltenwerts. Beachten Sie, dass dieses Feld nur festgelegt wird, wenn der JET_bitRetrieveTag angegeben ist. Andernfalls ist es unverändert.

columnidNextTagged

Gibt die Spalten-ID der zurückgegebene Spaltenwert beim Abrufen aller markierter, verschlüsselten und mit mehreren Werten Spalten übergeben Columnid von 0 (null).

Return Value

Diese Funktion gibt den Datentyp der JET_ERR mit einem der folgenden Rückgabecodes. Weitere Informationen zu den möglichen ESE-Fehlern finden Sie unter Extensible Storage Engine-Fehler und Fehler behandeln Parameter.

Rückgabecode

Beschreibung

JET_errSuccess

Der Vorgang wurde erfolgreich abgeschlossen.

JET_errBadColumnId

Die Spalten-ID angegeben ist, außerhalb des rechtlichen eine Spalten-ID.

JET_errBadItagSequence

Pretinfo wurde ein ungültiger mehrwertige Spalte Sequenz Zahlenwert übergeben -> ItagSequence. Gültige Werte für die mehrwertige Spalte Wert Sequenznummern sind 1 oder höher. Der Wert 0 (null) ist für diese Funktion ungültig.

JET_errClientRequestToStopJetService

Es ist nicht möglich, um den Vorgang abzuschließen, da alle Aktivitäten in der Instanz dieser Sitzung aufgrund eines Aufrufs von JetStopServiceeingestellt hat.

JET_errColumnNotFound

Die Spalte beschrieben, die durch die angegebene Spalten-ID existiert nicht in der Tabelle.

JET_errIndexTuplesCannotRetrieveFromIndex

Spalten indiziert, da Teilzeichenfolgen aus dem Index abgerufen werden können, da nur ein kleiner Teil der Spalte in der Regel in jedem Indexeintrag vorhanden ist.

JET_errInstanceUnavailable

Es ist nicht möglich, um den Vorgang abzuschließen, da die Sitzung zugeordnete Instanz ein schwerwiegender Fehler, der erfordert aufgetreten ist, dass der Zugriff auf alle Daten gesperrt werden, um die Integrität der Daten zu schützen. Dieser Fehler wird nur von Windows XP und späteren Versionen zurückgegeben werden.

JET_errInvalidBufferSize

In einigen Fällen muss der angegebene Puffer für die Spalte abrufen ausreichend Treppenabsätze, um jede Menge der Wert der Spalte zurück. Z. B. Treuhandservice aktualisierbare Spalten angepasst für den Transaktionskontext des aufrufenden Sitzung identisch sein, und für dieses Anpassung müssen vom Aufrufer bereitgestellten Puffer. Wenn nicht genügend Pufferspeicher angegeben wird, wird JET_errInvalidBufferSize zurückgegeben, und keine Spaltendaten jeglicher Art zurückgegeben.

JET_errInvalidParameter

Mindestens einer der angegebenen Parameter ist falsch. Dies kann geschehen, wenn die retinfo.cbStruct kleiner ist, die Größe des JET_RETINFO.

JET_errInvalidgrbit

Die Optionen sind unbekannt oder eine ungültige Kombination aus bekannten Bit-Einstellungen.

JET_errNoCurrentRecord

Der Cursor befindet sich nicht in einem Datensatz. Dies kann aus vielen verschiedenen Gründen geschehen. Z. B. geschieht dies, wenn der Cursor hinter dem letzten Datensatz auf dem aktuellen Index aktuell ist.

JET_errNotInitialized

Es ist nicht möglich, um den Vorgang abzuschließen, da die Instanz dieser Sitzung noch nicht initialisiert wurde.

JET_errRestoreInProgress

Es ist nicht möglich, um den Vorgang abzuschließen, da ein Wiederherstellungsvorgang ausgeführt auf die Instanz der Sitzung zugeordnet wird.

JET_errSessionSharingViolation

Die gleiche Sitzung kann für mehrere Threads gleichzeitig verwendet werden.

Windows XP:  Dieser Fehler wird nur von Windows XP und späteren Versionen zurückgegeben werden.

JET_errTermInProgress

Es ist nicht möglich, um den Vorgang abzuschließen, da die Sitzung zugeordnete Instanz heruntergefahren wird.

JET_wrnBufferTruncated

Der gesamte Spaltenwert konnte nicht abgerufen werden, da der angegebene Puffer kleiner als die Größe der Spalte ist.

JET_wrnColumnNull

Der abgerufene Spaltenwert ist NULL.

Bei Erfolg wird der Spaltenwert für die angegebene Spalte in den angegebenen Puffer kopiert. Kleiner als der Wert der Spalte wird mit der Warnung kopiert JET_wrnBufferTruncated zurückgegeben wird. Wenn die PcbActual erteilt wurde, wird die tatsächliche Größe des Spaltenwerts zurückgegeben. Hinweis Legen Sie die zurückgegebene Größe, dass NULL -Werte 0 (null) Länge und wird daher auf 0 (null). -> ItagSequence, wenn die Spalte abgerufen eine mehrwertige Spalte wurde Pretinfo erhielt und JET_bitReturnTag als eine Option festgelegt wurde, wird die laufende Nummer des Spaltenwerts in Pretinfo zurückgegeben.

Bei einem Fehler die Cursorposition bleibt unverändert, und keine Daten in den bereitgestellten Puffer kopiert.

Anmerkungen

Dieser Aufruf wird nur einmal zum Abrufen von Daten von festen oder bekannte Größe der Spalten nicht mit mehreren Werten verwendet. Jedoch Wenn Spaltendaten unbekannter Größe ist, wird dieser Aufruf in der Regel zweimal verwendet. Es heißt zunächst bestimmen Sie die Größe der Daten, damit sie den erforderlichen Speicherplatz zuordnen kann. Anschließend demselben Aufruf erfolgt zum Abrufen der Spaltendaten. Wenn die tatsächliche Anzahl der Werte bekannt ist, ist, da eine Spalte mit mehreren Werten ist, wird der Aufruf normalerweise dreimal verwendet. Zuerst, um die Anzahl der Werte zu, und klicken Sie dann zweimal mehr Speicher zuweisen und die tatsächlichen Daten abzurufen.

Abrufen aller Werte für eine Spalte mit mehreren Werte erfolgen kann, indem Sie wiederholt Aufrufen dieser Funktion mit einem Pretinfo -> ItagSequence-Wert beginnend bei 1 und bei jedem nachfolgenden Aufruf erhöhen. Der Wert der letzte Spalte bekanntermaßen abgerufen werden, wenn ein JET_wrnColumnNull aus der Funktion zurückgegeben wird. Hinweis, der diese Methode durchgeführt werden kann, wenn die mehrwertige Spalte explizit NULL hat Satz Werte in der Sequenz Wert, da diese Werte übersprungen werden würde. Wünscht eine Anwendung zum Abrufen von Werten für alle mehrwertige Spalte, einschließlich explizit auf NULLfestgelegt, muss JetRetrieveColumns anstelle von JetRetrieveColumnverwendet werden. Beachten Sie, dass diese Funktion die Anzahl von Werten für eine Funktion mit mehreren Werten nicht zurück, wenn ein ItagSequence -Wert von 0 (null) angegeben wird. Nur JetRetrieveColumns gibt die Anzahl der Werte eines Spaltenwerts zurück, wenn ein ItagSequence -Wert von 0 (null) übergeben wird.

Wenn diese Funktion auf Transaktionsebene 0 (null) aufgerufen wird, z. B. die aufrufende Sitzung ist selbst nicht in einer Transaktion, dann eine Transaktion geöffnet und geschlossen innerhalb der Funktion. Dies dient zurückzugebenden konsistente Ergebnisse in dem Fall, dass ein long-Wert Datenbankseiten umfasst. Beachten Sie, dass die Transaktion zwischen Funktionsaufrufen freigegeben und kann eine Reihe von Aufrufen dieser Funktion wird die Sitzung nicht in einer Transaktion Daten nach dem ersten Aufruf dieser Funktion aktualisiert.

Der Standardwert für die Spalte wird abgerufen, wenn die Spalte nicht explizit auf einen anderen Wert festgelegt wurde, wenn die Option JET_bitRetrieveIgnoreDefault festgelegt ist.

Wert der Autoincrement-Spalte abrufen, aus dem vorherigen Kopierpuffer gemeinsame Methode zur Identifizierung eines Datensatzes für die Bindung eindeutig beim Einfügen von Daten in mehrere Tabellen normalisiert, um einzufügen ist. Der Autoincrement-Wert wird zugewiesen, wenn der Einfügevorgang beginnt und aus dem Kopierpuffer kann, zu jeder Zeit abgerufen werden, bis die Aktualisierung abgeschlossen ist.

Wenn alle Spalten mit Tags, mit mehreren Werte und mit geringer Datendichte, Abrufen von Spalten-ID auf 0 (null) festlegen, werden Spalten in Columnid Reihenfolge von der niedrigsten Columnid zur höchsten Spalten-IDabgerufen. Die Reihenfolge der Spaltenwerte wird pro Zeitspalte zurückgegeben, wie Werte abgerufen werden. Die Reihenfolge ist deterministisch.

Voraussetzungen

-Client,

Erfordert Windows Vista, Windows XP oder Windows 2000 Professional.

Server

Erfordert WindowsServer 2008, WindowsServer 2003 oder Windows 2000 Server.

Kopfzeile

In Esent.h deklariert.

Library

Verwenden Sie ESENT.lib.

DLL

"ESENT.dll" erfordert.

Siehe auch

JET_COLUMNID
JET_ERR
JET_SESID
JET_TABLEID
JET_RETINFO
JetSetColumn
JetRetrieveColumns