Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.
SQL SELECT 文を直接実行し、単一の結果を返します。
public virtual bool ExecuteScalar( void * dstPtr, size_t dstSize, ul_column_storage_type dstType, const char * sql, ... )
dstPtr 値を受信するための必要な型の変数へのポインタ。
dstSize 値を受信するための変数のサイズ (適用できる場合)。
dstType 取得する値の型。この値は、変数の型と一致する必要があります。
sql SELECT 文。オプションで '?' パラメータが含まれます。
... 代入する文字列 (char *) パラメータ値。
クエリが正常に実行され、値が正常に取得される場合は true。それ以外の場合で値がフェッチされないときは false。SQLCODE エラーコードをチェックして、false が返される理由を特定します。警告またはエラー (SQLE_NOERROR) が示されない場合、選択した値は NULL になります。
dstPtr 値は、dstType 値に一致する正しい型の変数を指す必要があります。dstSize パラメータは、文字列やバイナリなどの可変サイズの値にのみ必要とされ、それ以外の場合は無視されます。パラメータ値の変数リストは、文のパラメータに対応している必要があり、すべての値は文字列であると想定されます。(内部的には、Ultra Light は、文で必要とされるときにパラメータ値をキャストします)
次の型がサポートされます。
UL_TYPE_BIT/UL_TYPE_TINY 変数の型 ul_byte (8 ビット、符号なし) を使用します。
UL_TYPE_U_SHORT/UL_TYPE_S_SHORT 変数の型 ul_u_short/ul_s_short (16 ビット) を使用します。
UL_TYPE_U_LONG/UL_TYPE_S_LONG 変数の型 ul_u_long/ul_s_long (32 ビット) を使用します。
UL_TYPE_U_BIG/UL_TYPE_S_BIG 変数の型 ul_u_big/ul_s_big (64 ビット) を使用します。
UL_TYPE_DOUBLE 変数の型 ul_double (double) を使用します。
UL_TYPE_REAL 変数の型 ul_real (float) を使用します。
UL_TYPE_BINARY 変数の型 ul_binary を使用し、dstSize を指定します (GetBinary() の場合と同様)。
UL_TYPE_TIMESTAMP_STRUCT 変数の型 DECL_DATETIME を使用します。
UL_TYPE_CHAR 変数の型 char [] (文字バッファ) を使用し、dstSize にバッファのサイズを設定します (GetString() の場合と同様)。
UL_TYPE_WCHAR 変数の型 ul_wchar [] (ワイド文字バッファ) を使用し、dstSize にバッファのサイズを設定します (GetString() の場合と同様)。
UL_TYPE_TCHAR どちらのバージョンのメソッドが呼び出されているかに応じて、UL_TYPE_CHAR または UL_TYPE_WCHAR と同様。
次の例は、整数のフェッチを示しています。
ul_u_long val; ok = conn->ExecuteScalar( &val, 0, UL_TYPE_U_LONG, "SELECT count(*) FROM t WHERE col LIKE ?", "ABC%" );
次の例は、文字列のフェッチを示しています。
char val[40]; ok = conn->ExecuteScalar( &val, sizeof(val), UL_TYPE_CHAR, "SELECT uuidtostr( newid() )" );