PASSTHRU ステートメントは、式を評価し、その結果の文字ストリングをデータベース・ステートメントとして実行します。
SYNTAX最初の式が評価され、その結果の文字ストリングは、(TO 文節中の) DatabaseReference で指されているデータベースに渡されて実行されます。TO 文節を指定しないと、ノードの「データ・ソース」属性によって指されているデータベースが使用されます。
データベース・ストリング中で疑問符 (?) を使用してパラメーターを示します。パラメーター値は VALUES 文節によって提供されます。
VALUES 文節を指定すると、その式が評価され、パラメーターとしてデータベースに渡されます (つまり、この値がデータベース・ステートメント中の疑問符と置換されます)。
VALUE 式が 1 つしかない場合、結果はリストになる場合もならない場合もあります。リストになる場合は、リストのスカラー値が順番に疑問符と置換されます。リストにならない場合は、単一のスカラー値がデータベース・ステートメント中の (単一の) 疑問符と置換されます。複数の VALUE 式がある場合は、どの式もリストに評価されません。それらの式のスカラー値が順番に疑問符と置換されます。
データベース・ステートメントはユーザー・プログラムによって構成されるので、パラメーター・マーカー (つまり疑問符) または VALUES 文節を絶対に使用する必要があるわけではありません。なぜなら、そのプログラムによってデータベース・ステートメント全体をリテラル・ストリングとして提供できるからです。しかし、パラメーター・マーカーを使用すると、さまざまなステートメントを作成してデータベースやブローカーに保管する必要が少なくなるので、使用可能な場合は必ずパラメーター・マーカーを使用してください。
データベース参照は、メッセージ・ツリーの参照に使用される特殊なフィールド参照です。この参照は、"Database" という語と、その後のデータ・ソース名 (つまり、データベース・インスタンスの名前) から成ります。
データ・ソース名は直接指定するか、または式を中括弧 ({...}) で囲んで指定できます。直接指定したデータ・ソース名は、名前置換の対象になります。つまり、使用している名前が既知の名前になるよう宣言されている場合、名前自体ではなく宣言済みの名前の値が使用されます (DECLARE ステートメントを参照)。
PASSTHRU 操作中にエラーが起きる可能性があります。例えば、データベースが操作可能でなくなったり、ステートメントが無効だったりする場合があります。その場合 (ノードの「データベース・エラーで例外をスロー」プロパティーが FALSE に設定されているのでない限り)、例外がスローされます。これらの例外は、該当する SQL コード、状態、ネイティブ・エラー、およびエラー・テキストの値を設定し、エラー・ハンドラーで処理できます (DECLARE HANDLER ステートメントを参照)。
データベース・エラーの処理について詳しくは、データベース状態のキャプチャーを参照してください。
PASSTHRU 'CREATE TABLE Shop.Customers ( CustomerNumber INTEGER, FirstName VARCHAR(256), LastName VARCHAR(256), Street VARCHAR(256), City VARCHAR(256), Country VARCHAR(256) )' TO Database.DSN1;
SET myVar = 'SELECT * FROM user1.stocktable'; SET OutputRoot.XML.Data[] = PASSTHRU(myVar);
PASSTHRU 'DROP TABLE Shop.Customers' TO Database.DSN1;