JetSetLS-Funktion

Gilt für: Windows | Windows Server

JetSetLS-Funktion

Mit der JetSetLS-Funktion kann die Anwendung ein Kontexthandle namens Lokaler Speicher einem Cursor oder der diesem Cursor zugeordneten Tabelle zuordnen. Dieses Kontexthandle kann von der Anwendung verwendet werden, um Hilfsdaten zu speichern, die einem Cursor oder einer Tabelle zugeordnet sind. Die Anwendung wird später mithilfe eines Laufzeitrückrufs benachrichtigt, wenn das Kontexthandle freigegeben werden muss. Dadurch ist es möglich, dynamisch zugeordneten Zustand einem Cursor oder einer Tabelle zuzuordnen.

Windows XP:JetSetLS wird in Windows XP eingeführt.

    JET_ERR JET_API JetSetLS(
      __in          JET_SESID sesid,
      __in          JET_TABLEID tableid,
      __in          JET_LS ls,
      __in          JET_GRBIT grbit
    );

Parameter

sesid

Die Sitzung, die für diesen Aufruf verwendet werden soll.

tableid

Der Cursor, der für diesen Aufruf verwendet werden soll.

ls

Das Kontexthandle, das dem Cursor oder der Tabelle zugeordnet werden soll.

Wenn JET_bitLSReset angegeben wird, wird der tatsächliche Wert dieses Parameters ignoriert und JET_LSNil verwendet.

grbit

Eine Gruppe von Bits, die die Optionen enthalten, die für diesen Aufruf verwendet werden sollen, einschließlich 0 oder mehr der folgenden Optionen.

Wert

Bedeutung

JET_bitLSCursor

Diese Option gibt an, dass das Kontexthandle dem angegebenen Cursor zugeordnet werden soll.

Wenn weder JET_bitLSCursor noch JET_bitLSTable angegeben wird, wird von JET_bitLSCursor ausgegangen.

Es ist unzulässig, diese Option mit JET_bitLSTable zu verwenden. Der Vorgang schlägt mit JET_errInvalidgrbit fehl, wenn dies versucht wird.

JET_bitLSReset

Diese Option gibt an, dass das angegebene Kontexthandle ignoriert und das Kontexthandle für das ausgewählte Objekt auf JET_LSNil zurückgesetzt werden soll.

Beachten Sie, dass diese Aktion nicht zu einem Rückruf führt, um den vorherigen Wert des Kontexthandles für das ausgewählte Objekt zu bereinigen. Eine ordnungsgemäße Bereinigung des vorherigen Kontexthandles kann mithilfe von JetGetLS mit JET_bitLSReset erreicht werden. Weitere Informationen finden Sie unter JetGetLS .

JET_bitLSTable

Diese Option gibt an, dass das Kontexthandle der Tabelle zugeordnet werden soll, die dem angegebenen Cursor zugeordnet ist.

Es ist unzulässig, diese Option mit JET_bitLSCursor zu verwenden. Der Vorgang schlägt mit JET_errInvalidgrbit fehl, wenn dies versucht wird.

Rückgabewert

Diese Funktion gibt den Datentyp JET_ERR mit einem der folgenden Rückgabecodes zurück. Weitere Informationen zu möglichen ESE-Fehlern finden Sie unter Erweiterbare Speichermodulfehler und Fehlerbehandlungsparameter.

Rückgabecode

Beschreibung

JET_errSuccess

Der Vorgang wurde erfolgreich abgeschlossen.

JET_errClientRequestToStopJetService

Es ist nicht möglich, den Vorgang abzuschließen, da alle Aktivitäten auf der instance, die der Sitzung zugeordnet sind, aufgrund eines Aufrufs von JetStopService beendet wurden.

JET_errInvalidgrbit

Eine der angeforderten Optionen war ungültig, falsch verwendet oder nicht implementiert. Dies kann bei JetSetLS der Fall sein, wenn JET_bitLSCursor und JET_bitLSTable angegeben sind.

JET_errInstanceUnavailable

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

JET_errLSAlreadySet

Das angegebene Kontexthandle konnte dem angeforderten Objekt nicht zugeordnet werden, da ihm bereits ein Kontexthandle zugeordnet war.

JET_errLSCallbackNotSpecified

Das angegebene Kontexthandle konnte dem angeforderten Objekt nicht zugeordnet werden, da der Laufzeitrückruf nicht für die der Sitzung zugeordnete instance konfiguriert wurde.

JET_errNotInitialized

Es ist nicht möglich, den Vorgang abzuschließen, da die der Sitzung zugeordnete instance noch nicht initialisiert wurde.

JET_errRestoreInProgress

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

JET_errTermInProgress

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

Bei Erfolg wurde das angegebene Kontexthandle erfolgreich dem angeforderten Objekt zugeordnet. Es wird keine Änderung des Datenbankzustands vorgenommen.

Bei einem Fehler ist keine Änderung des Zustands des angeforderten Objekts aufgetreten. Es wird keine Änderung des Datenbankzustands vorgenommen.

Bemerkungen

Der lokale Speicher für einen Cursor oder eine Tabelle sollte als flüchtiger Cache angezeigt werden. Die Anwendung sollte zuerst versuchen, das Kontexthandle mithilfe von JetGetLS abzurufen. Wenn der Wert nicht festgelegt ist (also JET_LSNil), sollte die Anwendung einen neuen Kontext erstellen und ihn mithilfe von JetSetLS in den Cache laden. Die Anwendung kann den Cache mithilfe eines JetGetLS-Aufrufs mit JET_bitLSReset bereinigen. Wenn die Datenbank-Engine den Cache löscht, wird ein Laufzeitrückruf generiert, um der Anwendung die Möglichkeit zu geben, diesen Kontext zu bereinigen. Der Rückruftyp wird JET_cbtypFreeCursorLS für ein Kontexthandle, das einem Cursor zugeordnet ist, und JET_cbtypFreeTableLS für ein Kontexthandle, das einer Tabelle zugeordnet ist. In beiden Fällen wird das Kontexthandle als pvArg1 übergeben. Weitere Informationen finden Sie unter JET_CALLBACK .

Der Laufzeitrückruf muss ordnungsgemäß für die instance konfiguriert werden, die der angegebenen Sitzung zugeordnet ist, bevor der lokale Speicher verwendet werden kann. Dieser Rückruf kann mithilfe von JetSetSystemParameter mit JET_paramRuntimeCallback festgelegt werden. Weitere Informationen finden Sie unter JetSetSystemParameter und JET_paramRuntimeCallback unter Systemparameter.

Anforderungen

Anforderung Wert

Client

Erfordert Windows Vista oder Windows XP.

Server

Erfordert Windows Server 2008 oder Windows Server 2003.

Kopfzeile

Deklariert in Esent.h.

Bibliothek

Verwenden Sie ESENT.lib.

DLL

Erfordert ESENT.dll.

Weitere Informationen

JET_CALLBACK
JET_ERR
JET_GRBIT
JET_LS
JET_SESID
JET_TABLEID
JetGetLS
JetSetSystemParameter
Systemparameter