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

SQL Anywhere 12.0.1 » 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');

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

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