複数のCdbrEqlStatementオブジェクトを使用して検索を実行する場合に,個々の検索を終了しないで多数の検索を実行すると,エラーになることがあります。
複数の検索を実行する場合も,一つ一つの検索をそのつど終わらせるようなコーディングにすることをお勧めします。
ここでは,エラーになる可能性があるコーディング例と,それを改善した推奨コーディング例を示します。
ここでは,エラーになる可能性があるコーディング例を示します。
なお,処理の流れを明確にするため,引数は省略しています。
// 変数宣言
CdbrEqlStatement* pEqlStatement1 = NULL;
CdbrEqlStatement* pEqlStatement2 = NULL;
・
・
・
// オブジェクトを作成する。
pEqlStatement1 = new CdbrEqlStatement();
pEqlStatement2 = new CdbrEqlStatement();
・
・
・
//////////////////////////////////////
// オブジェクトを初期化する。
//////////////////////////////////////
rc = pEqlStatement1->Initialize(...);
if(DMA_TRUE != rc)
{
// エラー処理
}
rc = pEqlStatement2->Initialize(...);
if(DMA_TRUE != rc)
{
// エラー処理
}
・
・
・
//////////////////////////////////////
// 実行するedmSQL文を設定する。
//////////////////////////////////////
rc = pEqlStatement1->Set(...);
if(DMA_TRUE != rc)
{
// エラー処理
}
rc = pEqlStatement2->Set(...);
if(DMA_TRUE != rc)
{
// エラー処理
}
・
・
・
//////////////////////////////////////
// 検索を実行する。
//////////////////////////////////////
rc = pEqlStatement1->Execute(...);
if(DMA_TRUE != rc)
{
// エラー処理
}
rc = pEqlStatement2->Execute(...);
if(DMA_TRUE != rc)
{
// エラー処理
}
・
・
・
//////////////////////////////////////
// 検索結果を取得する。
//////////////////////////////////////
rc = pEqlStatement1->GetResult(...);
if(DMA_TRUE != rc)
{
// エラー処理
}
rc = pEqlStatement2->GetResult(...);
if(DMA_TRUE != rc)
{
// エラー処理
}
・
・
・
ここでは,推奨するコーディング例を示します。
なお,処理の流れを明確にするため,引数は省略しています。
// 変数宣言
CdbrEqlStatement* pEqlStatement1 = NULL;
CdbrEqlStatement* pEqlStatement2 = NULL;
・
・
・
// オブジェクトを作成する。
pEqlStatement1 = new CdbrEqlStatement();
pEqlStatement2 = new CdbrEqlStatement();
・
・
・
//////////////////////////////////////
// オブジェクトを初期化する。
//////////////////////////////////////
rc = pEqlStatement1->Initialize(...);
if(DMA_TRUE != rc)
{
// エラー処理
}
//////////////////////////////////////
// 実行するedmSQL文を設定する。
//////////////////////////////////////
rc = pEqlStatement1->Set(...);
if(DMA_TRUE != rc)
{
// エラー処理
}
//////////////////////////////////////
// 検索を実行する。
//////////////////////////////////////
rc = pEqlStatement1->Execute(...);
if(DMA_TRUE != rc)
{
// エラー処理
}
//////////////////////////////////////
// 検索結果を取得する。
//////////////////////////////////////
rc = pEqlStatement1->GetResult(...);
if(DMA_TRUE != rc)
{
// エラー処理
}
//////////////////////////////////////
// 検索を終了する。
//////////////////////////////////////
rc = pEqlStatement1->Terminate();
if(DMA_TRUE != rc)
{
// エラー処理
}
//////////////////////////////////////
// オブジェクトを削除する。
//////////////////////////////////////
delete pEqlStatement1;
//////////////////////////////////////
// オブジェクトを初期化する。
//////////////////////////////////////
rc = pEqlStatement2->Initialize(...);
if(DMA_TRUE != rc)
{
// エラー処理
}
//////////////////////////////////////
// 実行するedmSQL文を設定する。
//////////////////////////////////////
rc = pEqlStatement2->Set(...);
if(DMA_TRUE != rc)
{
// エラー処理
}
//////////////////////////////////////
// 検索を実行する。
//////////////////////////////////////
rc = pEqlStatement2->Execute(...);
if(DMA_TRUE != rc)
{
// エラー処理
}
//////////////////////////////////////
// 検索結果を取得する。
//////////////////////////////////////
rc = pEqlStatement2->GetResult(...);
if(DMA_TRUE != rc)
{
// エラー処理
}
//////////////////////////////////////
// 検索を終了する。
//////////////////////////////////////
rc = pEqlStatement2->Terminate();
if(DMA_TRUE != rc)
{
// エラー処理
}
//////////////////////////////////////
// オブジェクトを削除する。
//////////////////////////////////////
delete pEqlStatement2;