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 - Serveradministration » MobiLink-Ereignisse » Synchronisationsskripten erstellen » Skriptparameter

 

Benutzerdefinierte benannte Parameter

Sie können auch Ihre eigenen Parameter definieren. Diese sind besonders nützlich für RDBMS, die keine benutzerdefinierten Variablen erlauben.

Benutzerdefinierte Parameter werden festgelegt (und auf NULL gesetzt), wenn sie das erste Mal referenziert werden. Sie müssen mit ui und einem Punkt (ui.) beginnen. Ein benutzerdefinierter Parameter bleibt für die Dauer einer Synchronisation bestehen. Er wird beim Start jeder Synchronisation auf NULL gesetzt. Benutzerdefinierte Parameter sind I/O-Parameter.

Eine typische Anwendung eines benutzerdefinierten Parameters ist der Zugriff auf Statusinformationen, ohne diese in einer Tabelle speichern zu müssen (mit möglicherweise komplexen Joins).

Beispiel

Angenommen, Sie erstellen eine gespeicherte Prozedur namens MyCustomProc, die eine Variable namens var1 auf custom_value setzt:

CREATE PROCEDURE MyCustomProc(
  IN username (VARCHAR 128), INOUT var1 (VARCHAR 128)
)
begin
 SET var1 = 'custom_value';
end

Das folgende Skript begin_connection definiert den benutzerdefinierten Parameter var1 und setzt den Wert auf custom_value:

CALL ml_add_connection_script ( 
  'version1', 
  'begin_synchronization', 
  '{call MyCustomProc( {ml s.username}, {ml ui.var1} )}' );

Das folgende Skript begin_upload referenziert var1, dessen Wert custom_value ist:

CALL ml_add_connection_script ( 
  'version1', 
  'begin_upload', 
  'update SomeTable set some_column = 123 where some_other_column = {ml ui.var1}' );

Angenommen, Sie haben eine andere gespeicherte Prozedur namens MyPFDProc, die ihren ersten I/O-Parameter definiert. Das folgende Skript prepare_for_download ändert den Wert von var1 auf pfd_value:

CALL ml_add_connection_script ( 
  'version1', 
  'prepare_for_download', 
  '{call MyPFDProc( {ml ui.var1} )}' );

Das folgende Skript begin_download referenziert var1, dessen Wert nun pfd_value ist:

CALL ml_add_connection_script ( 
  'version1', 
  'begin_download', 
  'insert into SomeTable values( {ml s.username}, {ml ui.var1} )' );