Greifen Sie ein, wenn ein Synchronisationsdownload aufgrund eines Datenbankfehlers zurückgesetzt werden soll
Dieser Hook wird nicht mehr weiterentwickelt. Weitere Hinweise finden Sie unter Fehlerbehandlung und Warnungen in Hook-Prozeduren.
Name |
Wert |
Beschreibung |
---|---|---|
table name (in) |
Tabellenname |
Die Tabelle, an der gearbeitet wurde, als der Fehler auftrat. Der Wert ist eine leere Zeichenfolge, wenn dbmlsync die Tabelle nicht identifizieren kann. |
SQL error code (in) |
SQL-Fehlercode |
Gibt den SQL-Fehlercode an, der von der Datenbank zurückgegeben wird, wenn der Vorgang fehlgeschlagen ist |
publication_n (in) |
Publikation |
Die synchronisierten Publikationen, wobei n eine Ganzzahl ist. Es gibt einen publication_n-Eintrag für jede Publikation im Upload. Die Nummerierung von n beginnt bei Null. |
MobiLink user (in) |
MobiLink-Benutzername |
Der MobiLink-Benutzer, für den Sie synchronisieren |
script version (in) |
Skriptversionsname |
Die MobiLink-Skriptversion, die für die Synchronisation verwendet werden soll |
Wenn eine Prozedur dieses Namens vorhanden ist, wird sie aufgerufen, unmittelbar bevor ein Synchronisationsdownload aufgrund eines Datenbankfehlers zurückgesetzt wird. Dies ist der Fall, wenn ein SQL-Fehler eintritt, der nicht ignoriert werden kann, oder wenn die Hook-Prozedur sp_hook_dbmlsync_download_SQL_error bereits aufgerufen wurde und bestimmt hat, den Fehler nicht zu ignorieren.
Diese Prozedur wird über eine getrennte Verbindung ausgeführt, sodass Fehler protokolliert werden können. Andernfalls würde die Protokollierung zusammen mit den Synchronisationsvorgängen zurückgesetzt. Wenn dbmlsync keine getrennte Verbindung herstellen kann, wird die Prozedur nicht aufgerufen.
Auf Windows Mobile-Geräten werden Synchronisationstabellen exklusiv gesperrt. Das bedeutet, dass dieser Hook nicht erfolgreich ausgeführt werden kann, wenn er auf eine der Synchronisationstabellen zugreifen muss. Er kann auch nicht ausgeführt werden, wenn er auf Synchronisationstabellen zugreifen muss und Sie die erweiterte Option LockTables von dbmlsync auf EXCLUSIVE gesetzt haben. Weitere Hinweise finden Sie unter Erweiterte Option LockTables (lt).
Die Aktionen dieser Prozedur werden sofort nach ihrer Ausführung festgeschrieben.
Nehmen wir an, Sie verwenden die folgende Tabelle, um SQL-Fehler zu protokollieren.
CREATE TABLE "DBA"."SyncLogComErrorTable" ( " error_code " VARCHAR(255) NOT NULL , " event_time " TIMESTAMP NOT NULL , ); |
Das folgende Beispiel protokolliert den SQL-Fehlercode und den aktuellen Zeitstempel, wenn ein SQL-Fehler während des Lesens des Downloads auftritt. Die Informationen werden in der SyncLogSQLErrorTable-Tabelle in der entfernten Datenbank gespeichert.
CREATE PROCEDURE sp_hook_dbmlsync_download_fatal_sql_error () BEGIN INSERT INTO SyncLogSQLErrorTable (error_code, event_time) SELECT #hook_dict.value, CURRENT TIMESTAMP FROM #hook_dict WHERE name = 'SQL error code'; END; |
Kommentieren Sie diese Seite in DocCommentXchange. Senden Sie uns Feedback über diese Seite via E-Mail. |
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |