Q21:ファンクションコンポーネントのイベント処理で、SQL文を作成しデータベースアクセスコンポーネントで検索を実行しているが、文字が置き換えできないというエラーが発生する。
デバッガーで見たところ、SQL文までは生成できており、結果は返ってきているが、再度検索が実行されているようである。
A21:
お送りいただきましたアプリケーションファイルの処理では、ダイアログ表示のあとにファンクションのメソッドが呼び出されています。ダイアログ表示の時点ではテキストフィールドの値がファンクションの引数に設定されておりません。
ダイアログはフレームと動作が異なっておりまして、あるイベントでのメソッドの実行につきまして、「ダイアログを表示する」メソッドを実行した場合、そのダイアログを閉じるまで次のメソッド(ここでは、「ファンクションの呼び出し(1引数)」)が実行されません。
従いまして、ダイアログ表示後に複合コンポーネント内のボタン(ID:1-7)を押したタイミングでは、ファンクション(ID:1-8)の引数にテキストフィールドの値が設定されていないため、文字の置き換えのエラーが発生したのだと存じます。
さらに、ダイアログを閉じた際に、上記のメソッド「ファンクションの呼び出し(1引数)」が実行されますため、再び検索が実行されてしまいます。