GetParamメソッド
機能
ストアドプロシジャの実行結果を引数で取得します。
形式1:ユーザ確保領域へコピーする場合
インデクス番号指定
void GetParam(UINT32 dwIndex,INT16 * sParam) throw DBSQLCA
void GetParam(UINT32 dwIndex,INT32 * lParam) throw DBSQLCA
void GetParam(UINT32 dwIndex,UINT16* swParam) throw DBSQLCA
void GetParam(UINT32 dwIndex,UINT32* dwParam) throw DBSQLCA
void GetParam(UINT32 dwIndex,SINGLE* sfParam) throw DBSQLCA
void GetParam(UINT32 dwIndex,DOUBLE* dfParam) throw DBSQLCA
void GetParam(UINT32 dwIndex,DBR_DATETIME* dtParam)
throw DBSQLCA
フィールド名指定
void GetParam(LPCTSTR lpctParamName,INT16 * sParam)
throw DBSQLCA
void GetParam(LPCTSTR lpctParamName,INT32 * lParam)
throw DBSQLCA
void GetParam(LPCTSTR lpctParamName,UINT16* swParam)
throw DBSQLCA
void GetParam(LPCTSTR lpctParamName,UINT32* dwParam)
throw DBSQLCA
void GetParam(LPCTSTR lpctParamName,SINGLE* sfParam)
throw DBSQLCA
void GetParam(LPCTSTR lpctParamName,DOUBLE* dfParam)
throw DBSQLCA
void GetParam(LPCTSTR lpctParamName,DBR_DATETIME* dtParam)
throw DBSQLCA
形式2:DABrokerが用意した領域を参照する場合
インデクス番号指定
void GetParam(UINT32 dwIndex,LPTSTR* lptParam) throw DBSQLCA
void GetParam(UINT32 dwIndex,DBR_BINARY* blobParam)
throw DBSQLCA
フィールド名指定
void GetParam(LPCTSTR lpctParamName,LPTSTR* lptParam)
throw DBSQLCA
void GetParam(LPCTSTR lpctParamName,DBR_BINARY* blobParam)
throw DBSQLCA
形式3:ユーザ確保領域へコピーする場合
インデクス番号指定
INT32 GetParam(UINT32 dwIndex,LPTSTR lptParam,UINT32 dwSize)
throw DBSQLCA
INT32 GetParam(UINT32 dwIndex,DBR_BINARY* blobParam,
UINT32 dwSize) throw DBSQLCA
フィールド名指定
UINT32 GetParam(LPCTSTR lpctParamName,LPTSTR lptParam,
UINT32 dwSize) throw DBSQLCA
UINT32 GetParam(LPCTSTR lpctParamName,DBR_BINARY* blobParam,
UINT32 dwSize) throw DBSQLCA
引数
dwIndex
1から始まるパラメタの番号を指定します。指定するパラメタの番号は,プロシジャのパラメタの定義順に割り当てられます。
*xxParam(形式1,3の第2引数)
データをコピーする領域のポインタを指定します。
*xxParam(形式2の第2引数)
ポインタ変数を指定します。
dwSize
コピー先の文字列領域の大きさをバイト数で指定します。
lpctParamName
プロシジャを作成したときのパラメタの名前を指定します。パラメタの名前は,プロシジャで定義した名前を使用してください。
戻り値
データ型:UINT32
コピーした文字列の長さが返ります。パラメタの値を指定された型にキャストして取得します(形式3の場合)。
機能詳細
IN/OUT,OUT引数に出力された結果(パラメタ値)を取得します。このメソッドはプロシジャの実行が終了してから実行してください。プロシジャの実行が終了したかどうかを確認するには,IsCompletedメソッドを利用できます。
形式1の処理
パラメタ値を,引数に指定されたポインタが指す領域に格納します。
形式2の処理
DABrokerが確保した領域にパラメタ値をコピーし,その先頭アドレスをポインタ変数に設定します。このため,LPTSTRまたはDBR_BINARYの変数の確保だけで,パラメタ値をコピーする領域を確保する必要はありません。
形式3の処理
リターン値を返せるプロシジャを実行した場合
1番目のパラメタにリターン値が返ります。プロシジャがリターン値を返さない場合はリターン値としてパラメタには0が返ります。
データ変換について
データベースのデータ型とGetParamの引数に指定したデータ型とが異なる場合は,値の変換できるものについては引数で指定したデータ型に変換して返します。
文字列から数値データ型への変換に失敗した場合は0を返します。データ型の変換規則については,「7.1 クラスライブラリで扱うデータ型と変換規則」のGetField,GetParamメソッドでのデータ型変換規則を参照してください。
NULL値の扱い
NULLであるパラメタに対してGetParamメソッドを呼び出すと,戻される値は意味のない値(0,空文字列,要素がすべて0,空文字列からなる構造体,又は不定値)となります。
このため,パラメタの値がNULLである可能性がある場合は,IsNullメソッドを呼び出して,NULL値かどうかを確認してください。
発生する例外
DBSQLCA(RetCode)