Q6:「3.8. 登録機能の作成」の「ローカルMySQL 管理」複合コンポーネントの「メソッド:指定したテーブルに複数行を一括追加する」について
Q6-1:
購買管理のチュートリアルのテキスト「3.8. 登録機能の作成」の2行目に「ローカルMySQL管理」〜が持つ「指定したテーブルに複数行を一括追加する」メソッドを使う、とありますが、実際にはどのようなSQL文を発行しているのか知りたい場合、どのようにコンポーネントを追っていけばよいのでしょうか?調べ方を教えてください。
A6-1:
「ローカルMySQL 管理」複合コンポーネントの「メソッド:指定したテーブルに複数行を一括追加する」についてご説明します。
複合コンポーネント内のコンポーネントのメソッドを利用する際には、メソッドの公開をしています。
「ローカルMySQL 管理」内の[データベースアクセス]コンポーネントの「メソッド:insertRow(String, PFObjectTable)」のメソッドを公開し、『公開メソッド名を変更』したものが、「メソッド:指定したテーブルに複数行を一括追加する」となっています。
「メソッド:insertRow(String, PFObjectTable)」には
<引数0>(型:String)でデータベースのテーブル名を
<引数1>(型:PFObjectTable)で追加したいテーブルのデータを指定します。
[データベースアクセス]コンポーネントにはその他
・updateRow
・updateCell
・deleteRow などのメソッドが、
また、insertRow にも引数にString(=データの挿入先テーブル名)を指定しないinsertRow(PFObjectTable)などもあり、Select文で取得したテーブルデータを用い、更新を行うことができます。
通常startUpdate()、finishUpdate()に挟んで実行します。
@startUpdate()
Aselect文実行
BUpdateRow
CfinishUpdate() の順番となります。
但しinsertRow(String,PFObjectTable)だけは特別に、StartUpdate()等は必要なくメソッドを実行するだけで良いように設定されています。
処理の流れを簡単にご説明しますと、[ボタン(ID:20-1 登録)]を押すと [イベント生成(ID-23 送信イベント)]の「メソッド:データ更新イベント]の処理が行われます。
この時<引数0>でテーブル名「irai」を、<引数1>で登録用テーブルのデータを指定しています。(<引数>の説明欄に「対象データ」「更新データ」とありますが、厳密な意味はありません)
このデータを「ローカルMySQL管理」の「メソッド:指定したテーブルに複数行を一括追加する」の処理を行う時の<引数0、1>に指定します。
イベントごと伝播されているので、取得方法:イベント内包で取得しています。