Q3:「3.8. 登録機能の作成」の「操作: アプリケーションの動作を確認しましょう。」の図68の発注依頼の登録時に、行インデックスエラーが発生します。
Q3-1:
購買管理アプリケーション作成チュートリアルの流れに沿って開発を行っているのですが「3.8. 登録機能の作成」の「操作: アプリケーションの動作を確認しましょう。」の図68の発注依頼の登録時に行インデックスエラーが発生してしまいます。原因がわからないのですが、どのように対応すればよろしいのでしょうか?
A3-1:
@登録ボタンを押したときのエラーについて
列名を日本語に直して判りやすくした「画面表示用」の[テーブル]コンポーネントと、列名がMySQLの英語テーブル名のままの「登録用」[テーブル]コンポーネントと2つ用意していただいていますが、あらかじめどちらの[テーブル]にも一行ずつ行を追加しておいてください。
「画面表示用」のテーブルの最初の行(行インデックス:0)の内容をそのまま「登録用」のテーブルの最初の行(行インデックス:0)に一旦設定するようになっているので、「登録用」のテーブルに行が無いとエラーになってしまいます。
ここでは、MySQLの英語テーブル名のままですと、入力時扱いにくいので、入力用の「画面表示用」テーブルはあらかじめ日本語で列名を入れておき、裏ではMySQLの列名そのままのテーブルを用意しておくという方法をご紹介しています。
また、「画面表示用」の[テーブル]の最初の行の内容がデータベースに反映されるので、用意する行は一行だけで、そこで内容を設定・変更して[登録]してください。
Aイベント番号3の設定
[参照]ボタンを押した時の処理の4番目に[イベント生成(Key:送信イベント)]コンポーネントを接続し、イベント番号を「3」としていただいています。
ここで一旦、[発注依頼]複合コンポーネントから出た処理は[ローカルMySQL管理]複合コンポーネント内の[データベースアクセス]コンポーネントでSQL文が実行され、また[発注依頼]複合コンポーネントに戻ってきます。
この時イベント番号「3」は保持されているので、[イベント生成(Key:受信イベント)]コンポーネントに接続されている[サブルーチン(Key:参照データ取得)]にはイベント番号「3」を設定してください。
(「購買管理アプリケーション作成チュートリアル」図59の接続)
ここでイベント番号を設定しておかないと[SQL文実行]ボタンを押した時も、同じようにデータ生成イベントが発生しているので、[参照]ボタンを押した時との条件分けができず、エラーが生じてしまいます。