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