同期スクリプトのほとんどは、Mobile Link サーバからパラメータを受け取ることができます。各スクリプトで使用できるパラメータの詳細については、同期イベントを参照してください。
次のいずれかの方法によって、SQL スクリプトでパラメータを指定できます。
疑問符
名前付きスクリプト・パラメータ
疑問符を使ってパラメータを表すのは ODBC 規則です。Mobile Link SQL スクリプトで疑問符を使用するには、SQL スクリプトで各パラメータに対して 1 つ疑問符を置きます。Mobile Link サーバが、各疑問符をパラメータ値に置き換えます。パラメータ値への置き換えは、スクリプト内でパラメータが定義されている順序に従って行われます。
パラメータは、同期イベントで指定された順に置いてください。一部のパラメータは省略可能です。パラメータが省略可能になるのは、後続のパラメータを指定しない場合に限られます。たとえば、パラメータ 2 を使用する場合は、パラメータ 1 を必ず使用してください。
Mobile Link には、スクリプトで疑問符の代わりに使用できる名前付きパラメータが用意されています。名前付きパラメータには、次のような利点があります。
使用可能なパラメータの任意のサブセットを任意の順序で指定できます。
in/out パラメータを除き、スクリプト内で同じ名前付きパラメータを複数回指定できます。
名前付きパラメータを使用する場合には、スクリプトでリモート ID を指定できます。スクリプトでリモート ID を指定できるのは、この方法だけです。
独自の名前付きパラメータを作成できます。ユーザ定義の名前付きパラメータを参照してください。
1 つのスクリプト内で名前付きパラメータと疑問符を混在させることはできません。
Mobile Link 名前付きパラメータには 4 種類あります。名前付きパラメータを指定するには、次のように種類をプレフィクスとして付ける必要があります。
名前付きパラメータの種類 | プレフィクス | 例 |
---|---|---|
システム・パラメータ | s. | {ml s.remote_id} |
ロー・パラメータ (カラムの名前。カラム名にスペースが含まれる場合は二重引用符または角カッコで囲む)。 | r. |
{ml r.cust_id} {ml r."Column name"} |
古いロー・パラメータ (プレイメージのカラムの値を指定するために upload_update スクリプトのみで使用。カラム名にスペースが含まれる場合は、二重引用符または角カッコで囲む)。 | o. |
{ml o.cust_name} {ml o."Column name"} |
認証パラメータ。認証パラメータを参照してください。 | a. | {ml a.1} |
ユーザ定義のパラメータ。ユーザ定義の名前付きパラメータを参照してください。 | ui. | {ml ui.varname} |
スクリプト・パラメータを名前で参照するには、{ml parameter } のように、パラメータを中カッコで囲み、前に ml を付けます。たとえば、{ml s.action_code} のように指定します。中カッコによる表記は ODBC 規則です。
便宜上、Mobile Link スクリプト・パラメータと同じ名前のスキーマ名がコード・セクション内に含まれていないかぎり、中カッコには大きなコード・セクションを含めることができます。たとえば、次の upload_insert スクリプトはどちらも有効で同じ内容を表しています。
INSERT INTO t ( id, c0 ) VALUES( {ml r.id}, {ml r.c0} ) |
および
{ml INSERT INTO t ( id, c0 ) VALUES( r.id, r.c0 ) } |
Mobile Link の同期モデル作成ウィザードでリモート・データベース内のカラムを生成していない場合に名前付きロー・パラメータを使用するには、ml_add_column システム・プロシージャを使用してカラム情報を統合データベースに格納する必要があります。ml_add_column system procedureを参照してください。
次の形式のコメントが認識されます。
二重ハイフン・プレフィクス (--)
二重スラッシュ・プレフィクス (//)
ブロック・コメント (/* */)
初めの 2 つの形式を使用すると、行の最後までのスクリプト・テキストが無視されます。3 つ目の形式を使用すると、/* プレフィクスと */ サフィックスの間にあるすべてのスクリプト・テキストが無視されます。ブロック・コメントはネストできません。
その他のタイプのベンダ固有コメントは認識されないため、名前付きパラメータへの参照のコメントには使用しないでください。
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |