Q40:現在データベースの処理にデータベースアクセスコンポーネントを使用しているのですが、このコンポーネントを他の複合コンポーネントなどに引数として渡し処理させるようなことはできますでしょうか?トランザクションの処理を行いたい場合に、別々のコンポーネントになっているとどのように処理すればよいのか悩んでおります。
A40:
コンポーネントを他の複合コンポーネントに渡すような方法はないことはないのですが、[データベースアクセス]に関しては複雑な方法はなるべく取らず、また一つのアプリケーション中には一つの[データベースアクセス]コンポーネントで接続して頂くことをお勧めしております。
トランザクション処理につきましては、[データベースアクセス]のメソッド「setAutoCommit(Boolean)」、「Rollback()」「commit()」などをお試し下さい。
但しデータベースによって少々の癖があるかと思います。例えばMySQLはコマンドあるいはiniファイル設定で「set AutoCommit=0」としないとうまく効かないようです。やはりトランザクション処理はデータベースの設定によるところも多いかと存じます。