uCosminexus DocumentBroker Version 3 クラスライブラリ C++ リファレンス 基本機能編

[目次][用語][索引][前へ][次へ]

CdbrEqlStatement::SetParamメソッド

機能

edmSQL文の?パラメタの設定

形式

// Boolean型の値を設定する場合
DmaBoolean SetParam (
  DmaInteger32     lParamIndex,
  DmaBoolean       bParam)
 
// Integer32型の値を設定する場合
DmaBoolean SetParam (
  DmaInteger32     lParamIndex,
  DmaInteger32     lParam)
 
// String型の値を設定する場合
DmaBoolean SetParam (
  DmaInteger32     lParamIndex,
  pDmaString_T     pParam)
 
// BinaryValue型の値を設定する場合
DmaBoolean SetParam (
  DmaInteger32     lParamIndex,
  DmaBinaryValue*  pbvParamParam)
 
struct DmaBinaryValue{
  DmaUInteger32    cbBytes;
  pDmaBinary       pbBytes;
};

詳細

edmSQL文中の?パラメタの値を設定するメソッドです。

このメソッドで設定できる値を次に示します。

このメソッドで設定した?パラメタの値は,CdbrEqlStatement::Executeメソッドのコール時に有効になります。?パラメタが存在しないedmSQL文を実行する場合は,このメソッドをコールする必要はありません。

?パラメタの値は,最後に設定した値が有効になります。設定し直していない?パラメタの値は有効なままです。ただし,CdbrEqlStatement::Setメソッドがコールされた場合には,すでに設定されている?パラメタのすべての値が無効になります。つまり,CdbrEqlStatement::Setメソッドで設定したedmSQL文の,すべての?パラメタについて値を設定し直す必要があります。

なお,?パラメタにOIIDを設定する場合にはCdbrEqlStatement::SetOIIDParamメソッドを使用し,DMAオブジェクトを設定する場合にはCdbrEqlStatement::SetObjParamメソッドを使用してください。

CdbrEqlStatement::Initializeメソッドがコールされていない状態でこのメソッドをコールした場合は,エラーになります。

戻り値がDMA_FALSEの場合,設定された?パラメタの値は保証できません。

edmSQL文中の?パラメタにBinaryValue型の値を設定する例を次に示します。

BinaryValue型の値を設定する例
//// 実行するedmSQL文をセット
brc = cEql->Set( (pDmaString_T)
   "Select score_concept(edmProp_ConceptStIndex)"
   " From usrClass_ContentSearchDV"
   " Where concept_with_score"
    "( edmProp_ConceptStIndex, ? AS BINARY(5M)) IS TRUE" );
if ( DMA_TRUE != brc ) {
   //エラー処理
}
//?パラメタをセット(?:{"この文字列を検索します"})
DmaBinaryValue pbvBinary;
char sCondition[1024];
strcpy(sCondition, "{\"この文字列を検索します\"}");
pbvBinary.cbBytes =
      (DmaUInteger32)sizeof("{\"この文字列を検索します\"}");
pbvBinary.pbBytes = (pDmaBinary)sCondition;
brc = cEql.SetParam(1, &pbvBinary);
if ( DMA_TRUE != brc ) {
   //エラー処理
}
//// edmSQL文の実行
brc = cEql->Execute();
if ( DMA_TRUE != brc ) {
   //エラー処理
}

引数

lParamIndex(入力)

edmSQL文中の?パラメタの出現順序を指定します。

1〜(edmSQL文中の?パラメタの数)の範囲で指定してください。0以下の値を指定した場合には,エラーになります。0より大きい値で範囲外の値を指定した場合は,CdbrEqlStatement::Executeメソッドのコール時にエラーになります。

また,同一の?パラメタに対して,複数回,値を設定した場合には,最後に設定した値が有効になります。

bParam,lParam,pParam,pbvParamParam(入力)

edmSQL文中の?パラメタに設定する値を指定します。

指定した値の型と要素の型が一致しないなどで構文不正となる場合には,CdbrEqlStatement::Executeメソッドのコール時にエラーになります。

なお,このメソッドでは,この引数で指定された値が妥当かどうかのチェックはしません。ただし,String型の値を設定するときに値としてNULLを指定した場合は,エラーになります。

戻り値

DMA_TRUE  正常終了

DMA_FALSE 異常終了

戻り値の詳細

major_code minor_code 説明 対処
ERR_DBR ERR_EQL_NOT_INITIALIZE 初期化が実行されていません。 初期化を実行してください。
ERR_DMA DMARC_BAD_PARAMETER 不正な引数が入力されました。 正しい引数を指定してください。
ERR_DMA DMARC_NO_MEMORY メモリ不足で実行できません。 メモリを増設してください。またはメモリを大量に消費しているアプリケーションを停止させて,処理を再実行してください。
ERR_DMA DMARC_UNEXPECTED 予期しないエラーが発生しました。 処理を終了してください。