DB 実行

www.altova.com このトピックを印刷 前のページ 1つ上のレベル 次のページ

ホーム >  アクション > データベース >

DB 実行

イベントがトリガーされると、 DB 実行アクションは、接続コンボボックスで選択されたデータソースのアクションのSQL ステートメントを実行します。このコンボ ボックスはプロジェクトのすべてのデータソースをリストし、具体的に DB 実行アクションと使用するための追加データベース接続をセットアップするオプションを与えます。$MT_DBExecute_Result に結果を保存するチェックボックスが選択されている場合、結果は $MT_DBExecute_Result 変数に保管されます。この変数は実行アクションの結果を提供するためにページの他の箇所の XPath 式に使用することができます。

MTDDBExecute01

 

エラーの処理

エラー時 オプションはエラーが発生すると何が行われるかを決定する事ができます:

 

スクリプトの中断: エラーの発生後、トリガーされたイベントの後全てのアクションは終了されます。これがエラーが発生した時のデフォルトのアクションです。 エラーに関わらず継続する場合は、継続またはスローオプションを選択します。
継続: アクションは終了されません。その代わりに、以下のイベントの際に何が起こるかを選択する事ができます: エラーが発生しない場合 (成功時)、 またはエラーが発生する場合 (エラー時)。例えば、ページのロードが成功したかを示すメッセージを表示することができます。
スロー: エラーが検出されると、このオプションは トライ/キャッチ アクションの変数内に保管された例外をスローします。 トライ/キャッチ アクション の キャッチ 部分は、エラーが発生した時、どのアクションが起こるかを指定します。エラーが発生しない場合は、次のアクションが処理されます。詳細に関しては、 トライ/キャッチ アクションのセクションを参照してください。

 

このアクションの使用についての詳細は、ページデザイン | データベース | DB 実行アクションのセクションを参照してください。

 

メモ:これらのアクションは、 DB ページソース内のデータと相互に作用するために使用されますが、データを表示するためには最適なメカニズムではありません。 DB ページソースからデータを表示する場合は、ページソースノード にリンクされているコントロール を(デザインに) 挿入してください。詳細に関しては、 コントロールページソース に関するセクションを参照してください。 チュートリアル は、ページソースデータを表示する実践的な方法について説明しています。

 

 

SQL ステートメント

SQL ステートメントを入力または編集するには、[追加ダイアログ] ボタンをクリックします。これにより SQL ステートメントの編集ダイアログが表示されます。(下のスクリーンショット)。ダイアログ下のルート オブジェクトは自動的に選択され、接続コンボ ボックスの選択をベースにしています。 ルート オブジェクト フィールドは編集することができません。継続する前に、ルート オブジェクトが正しいか確認をしてください。

Click to expand/collapse

 

オプションのパラメーター付き固定されたステートメント

SQL ステートメントを入力するには、[オプションのパラメーター付き固定されたステートメント] を選択し、 SQL ステートメントを入力します。ステートメント内でのパラメーターの使用は柔軟性を与えます。 例えば、上のスクリーンショットで、 WHERE 句に固定値を入力する代わりに、 Maker という名のパラメータが、 XML ページソースのノードの値を提供するために使用されています。 下の一番目のラインでは固定値が使用されています。2番目のラインではパラメーター Maker が使用されています。

 

WHERE Manufacturer= 'BMW'

WHERE Manufacturer= :Maker 

 

パラメーターを使用するには、使用する箇所の SQL ステートメントのパラメーター名のプレフィックスとしてコロンを使用します(:)。コロンの後に文字を入力すると、パラメーター ペインにパラメーターのエントリが作成されます。次に、パラメーター ペインで、パラメータの値を与えるために XPath 式を入力します。入力できるパラメータの数に制限はありません。

 

メモ:SQL ステートメントでは、直接 DB をクエリするため、ソースデータベースからの列とテーブル名が使用されます。しかし、パラメーターの XPath 式では、デザインに関連する値内のこれらのツリーが保管されているため、ページソースツリー (Row、RowSet など) のノード名を使用する必要があります。

 

 

XPath 使用してビルドされたステートメント

SQL ステートメントをビルドするために XQuery を使用することができます。 XPath を使用してビルドされたステートメントを選択し 必要な SQL ステートメントを生成する XPath  式を入力します。この利点は SQL ステートメントの作成がより柔軟に行えることです。例えば、デザインツリーノードの包含、他の X XPath  の構築、エンドユーザーのインプットを使用して計算および SQL ステートメントの部分を生成するなどがあげられます。

 

XPath 式を使用して SQL ステートメントをビルドするには、XPath とビルドされたステートメントを選択します。 表示された XPath/XQuery 式の編集ダイアログ に XPath 式を入力して、[OK] をクリックします。

 

 

一度またはすべてのノードの実行

SQL ステートメントはデータ ソースに対して一度、または、カスタムに定義されたノード セットの全てのノードに対して実行されることができます。後のオプションを選択すると、ノード セットを生成する XPath 式を入力する必要があります。  さらに、変数 $MT_TargetNode を使用してノード セットの現在のノードの値をクエリすることができます。この変数は、例えば、 SQL ステートメントのパラメーターの定義で使用することができます (パラメーター付き SQL ステートメントを参照)。

MTDDBExecute02

 

$MT_DBExecute_Result 変数

DB 実行アクションの(SQL ステートメント) から返されたノードセットまたは他の値は、MobileTogether Designer のビルドインされた変数 $MT_DBExecute_Result に保管されます。この変数はプロジェクトの最後の DB 実行アクションの結果を保管し、プロジェクトの他の箇所の XPath 式に使用することができます。

 

DB 実行アクションがノードセットを返す場合、 要素を構成し、構造された要素の子としてノードセットを挿入することができます。 または、 serialize() 関数を使用してノードセットを以下のようにserialize($MT_DBExecute_Result) を使用してシリアル化することができます。2つの XPath 式は、下のスクリーンショット内で赤い色の下線が引かれています。

MTDDBExecuteResult

ノードセット内の特定の要素にアクセスするには、XPath 式を使用してアクセスすることができます。 例えば、上のスクリーンショット内の DB 実行アクションを参照してください。SELECT ステートメントが次のノードセットを返すと仮定します:

 

<DB>

   <RowSet>

       <Row Model="Z3 COUPE 2014"/>

       <Row Model="Z3 COUPE 2015"/>

       <Row Model="Z3 COUPE 2016"/>

       <Row Model="Z4 3.0 SI COUPE 2014"/>

       <Row Model="Z4 COUPE 2015"/>

   </RowSet>

</DB>

 

返されたノードセット内で最初の車のモデル名にアクセスします。 XPath 式は以下のようになります: $MT_DBExecute_Result/DB/RowSet/Row[1]/@Model
モデル名内に年度 2016 が記入されている車の行にアクセスするための XPath 式は以下のようになります: $MT_DBExecute_Result/DB/RowSet/Row[@Model[contains(. , '2016')]]

(C) 2019 Altova GmbH