Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (Deutsch) » MobiLink - Clientadministration » SQL Anywhere-Clients für MobiLink » Ereignis-Hooks für SQL Anywhere-Clients

 

sp_hook_dbmlsync_download_fatal_sql_error (veraltet)

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.

Zeilen in der Tabelle #hook_dict

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

Bemerkungen

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.

Siehe auch
Beispiele

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;