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

SQL Anywhere 11.0.1 (日本語) » Mobile Link - サーバ管理 » Mobile Link イベント » 同期スクリプトの作成 » スクリプトのパラメータ

 

ユーザ定義の名前付きパラメータ

独自のパラメータを定義することもできます。独自のパラメータは、ユーザ定義の変数を使用できない RDBMS に特に便利です。

ユーザ定義のパラメータは、最初に参照されるときに定義され、NULL に設定されます。パラメータには、ui とピリオド (ui.) のプレフィクスを付ける必要があります。ユーザ定義のパラメータは 1 つの同期が終わるまで値が維持され、別の同期が開始されるときに NULL に設定されます。ユーザ定義のパラメータは in/out です。

ユーザ定義のパラメータは通常、テーブルに格納しないでステータス情報にアクセスするために使用します。テーブルに格納するには、複雑なジョインが必要です。

たとえば、var1 という変数を custom_value に設定する MyCustomProc というストアド・プロシージャを作成するとします。

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

次の begin_connection スクリプトでは、ユーザ定義のパラメータ var1 を定義し、値を custom_value に設定しています。

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

次の begin_upload スクリプトでは、値が custom_value の var1 を参照しています。

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

最初のパラメータを in/out に定義する MyPFDProc という別のストアド・プロシージャがあるとします。次の prepare_for_download スクリプトでは、var1 の値を pfd_value に変更しています。

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

次の begin_download スクリプトでは、値が pfd_value の var1 を参照しています。

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