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

SAP Sybase SQL Anywhere 16.0 (Deutsch) » MobiLink - Clientadministration » SQL Anywhere-Clients für MobiLink » Ereignis-Hooks für SQL Anywhere-Clients » Hook-Prozeduren

 

#hook_dict-Tabelle

Unmittelbar bevor ein Ereignis-Hook aufgerufen wird, erstellt dbmlsync die #hook_dict-Tabelle in der entfernten Datenbank mit der folgenden CREATE-Anweisung. Das # vor dem Tabellennamen bedeutet, dass die Tabelle eine temporäre Tabelle ist.

CREATE TABLE #hook_dict(
name VARCHAR(128) NOT NULL UNIQUE,
value VARCHAR(10240) NOT NULL)

Das Dienstprogramm dbmlsync verwendet die Tabelle #hook_dict, um Werte an Hook-Funktionen weiterzugeben. Hook-Funktionen verwenden die Tabelle #hook_dict, um Werte an dbmlsync zurückzugeben.

Jede Hook-Prozedur empfängt Parameterwerte. In einigen Fällen können Sie den Wert ändern, damit ein neuer Wert zurückgegeben wird. Andere Parameter sind schreibgeschützt. Jede einzelne Zeile in der Tabelle enthält den Wert für einen Parameter.

Zwei Subskriptionen können z.B. wie folgt definiert sein:

CREATE SYNCHRONIZATION SUBSCRIPTION sub1
TO pub1
FOR  MyUser;
SCRIPT VERSION 'v1'
CREATE SYNCHRONIZATION SUBSCRIPTION sub2
TO pub2
FOR  MyUser;
SCRIPT VERSION 'v1'

Wenn sp_hook_dbmlsync_begin für die folgenden Befehlszeile von dbmlsync aufgerufen wird:

dbmlsync -c 'DSN=MyDsn' -s sub1,sub2

enthält die #hook_dict-Tabelle die folgenden Zeilen:

Name Wert

subscription_0

sub1

subscription_1

sub2

publication_0

pub1

publication_1

pub2

MobiLink user

MyUser

Script version

v1
Hinweis

Die publication_n-Zeilen werden nicht mehr empfohlen und in einer zukünftigen Version möglicherweise entfernt.

Ein Hook kann Werte aus der Tabelle #hook_dict abrufen und sie benutzen, um sein Verhalten anzupassen. Um beispielsweise den MobiLink-Benutzer abzurufen, verwenden Sie eine SELECT-Anweisung der folgenden Art:

SELECT value
FROM #hook_dict
WHERE name = 'MobiLink user'

I/O-Parameter können von Ihrem Hook aktualisiert werden, um das Verhalten von dbmlsync zu ändern. Im sp_hook_dbmlsync_abort-Hook können Sie beispielsweise dbmlsync anweisen, die Synchronisation abzubrechen, indem die Synchronisationszeile 'abort' der Tabelle mit einer Anweisung der folgenden Art aktualisieren:

UPDATE #hook_dict
SET value='true'
WHERE name='abort synchronization'

Die Beschreibung der einzelnen Hooks listet die Zeilen in der Tabelle #hook_dict auf.

 Privilegien
 Beispiele