簡易クラスでは,Database,ResultSetオブジェクトを生成しデータベースアクセスを行います。このオブジェクトの生成には,DBRDatabase,DBRResultSetクラスのコンストラクタを利用しますので,オブジェクトを生成した関数が終了するとオブジェクトも削除されます。
詳細クラスでは,new演算子やauto変数の宣言でオブジェクトを生成するのは,DBDriverManagerクラスのオブジェクトです。これ以外のクラスのオブジェクトについては,new演算子などを使った生成ではなく,その親のオブジェクトのメソッドでオブジェクトを生成してください。
new演算子で生成したDriverManagerオブジェクトは,delete演算子で削除します。これ以外のオブジェクトは,削除メソッドでオブジェクトを削除してください。
例えば,DBStatementクラスやDBResultSetクラスなどはその親のオブジェクトが生成するため,親のクラスで提供するRemoveStatementメソッドやRemoveResultSetメソッド,又は自分自身を削除するRemoveメソッドなどで削除してください。
classList~クラスやDBResultSetMetaDataクラスなどは,それらの領域を削除するメソッドはありませんが,これらのオブジェクトは親のオブジェクトを削除した時に一緒に削除されます。
オブジェクトを削除した時は,そのオブジェクトのポインタは使用しないでください。特に,親オブジェクトを削除するケースでは,子のオブジェクトも削除されることに注意ください。
また,ResultSet中のフィールド値の参照で,DABrokerが用意した領域を参照する場合にも注意が必要です。
Transaction,CreateStatement,CreatePreparedStatement,CreateCallableStatementメソッドでは,オブジェクト名称を自動生成しますので,オブジェクト名称が重複しないよう注意が必要です。自動生成する名前は,次のようになっています。
DBTransactionオブジェクト名:T_%010d (T_0000000000~T_2147483647)
DBStatementオブジェクト名:S_%010d (S_0000000000~S_2147483647)
DBPreparedStatementオブジェクト名:P_%010d (P_0000000000~P_2147483647)
DBCallableStatementオブジェクト名:C_%010d(C_0000000000~C_2147483647)
ここで引数とする数値は,0~2147483647で0から始まり2147483647まで進むとまた0から始まります。この数値のカウンタは各オブジェクトごとに持っています。このとき,生成した名前を持つオブジェクトが既にあるかどうかのチェックはしません。同じ名前のオブジェクトを二つ以上生成すると異常終了することがあるので,同じ名前を付けることがないようにしてください。