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 » SQL Anywhere サーバ プログラミング » HTTP Web サービス » Web クライアントを使用した Web サービスへのアクセス » Web クライアントアプリケーションの開発

 

句の値に使用する代入パラメータ

ストアドプロシージャまたはファンクションの宣言済みパラメータは、そのプロシージャまたはファンクションが実行されるたびに、句の定義内のプレースホルダを自動的に置き換えます。代入パラメータを使用すると、実行時に動的に句を設定する一般的な Web サービスプロシージャを作成できます。感嘆符 '!' の後に宣言されたパラメータの 1 つの名前が続いている部分文字列はすべて、パラメータの値で置換されます。こうして、実行時に 1 つ以上のパラメータ値が代入され、1 つ以上の句の値が抽出されます。

パラメータの代入を行うには、次の規則を順守する必要があります。

  • 代入に使用するパラメータはすべて英数字にします。アンダースコアは使用できません。

  • 代入パラメータの直後は、英数字以外の文字が続くか終了である必要があります。たとえば、!sizeXL は、X が英数字であるため、size というパラメータの値で置換されません。

  • パラメータ名に一致しない代入パラメータは無視されます。

  • 感嘆符 (!) は別の感嘆符でエスケープできます。

たとえば、次のプロシージャは、代入パラメータの使用方法を示します。URL と HTTP ヘッダの定義は、パラメータとして渡します。

CREATE PROCEDURE test(uid CHAR(128), pwd CHAR(128), headers LONG VARCHAR)
    URL 'http://!uid:!pwd@localhost/myservice'
    HEADER '!headers';

次の文を使用して test プロシージャを呼び出し、HTTP 要求を開始できます。

CALL test('dba', 'sql', 'NewHeader1:value1\nNewHeader2:value2');

このプロシージャが呼び出されるたびに、異なる値を使用できます。

 暗号化証明書の例
 一致するパラメータ名がない場合の例