SQLSetParamNull() 関数
- Last UpdatedSep 26, 2024
- 1 minute read
SQLSetParamNull() 関数は、SQL ステートメント内の指定したパラメータを Null に設定します。
カテゴリ
SQL
構文
SQLSetParamNull(StatementID, ParameterNumber, ParameterType, Precision, Scale)
引数
StatementID
クエリー内で SQL ステートメントを識別する整数値
ParameterNumber
StatementID 引数によって識別される SQL ステートメントでパラメータを識別する整数値
ParameterType
ParameterNumber 引数で指定されたパラメータに関連付けられているデータ タイプを指定する整数値ParameterType 引数は、次の値に関連付けることができます。
0: 文字列
1:日付時刻
2:整数型
3:浮動小数点数
4:進数
精度
パラメータ データ タイプに関連付けられているデータの精度
スケール
10 進数値のスケール。この値は、Null に設定するパラメータに対して適用可能な場合にのみ必要です。
備考
Null 値との比較は、SQL Server の ANSI_NULLS オプションによって管理されます。SQL Server 7.0 では、このオプションはクエリー実行時ではなく、オブジェクト作成時に解決されます。ストアド プロシージャが SQL Server 7.0 で作成される場合、このオプションはデフォルトで ON であり、"WHERE MyField = NULL" などの句は常に NULL (FALSE) を返し、この句を使用する SELECT ステートメントから行は返されません。
比較 = または <> が TRUE または FALSE を返すには、ストアド プロシージャを作成するときにオプションを OFF に設定する必要があります。ANSI_NULLS が OFF に設定されていない場合、SQLSetParamNull() は期待どおりに動作しません。この場合、Null 値に対する比較は "WHERE MyField IS NULL" または "WHERE MyField IS NOT NULL" の構文を使用する必要があります。
例
このトランザクション セットは、ProductName が Null ではない Products テーブル内のすべての行を返します。
ANSI_NULLSをオフに設定
GO
CREATE PROCEDURE sp_TestNotNull @ProductParam varchar(255)
AS SELECT * FROM Products WHERE ProductName <> @ProductParam
GO
ANSI_NULLSをオンに設定
GO
InTouch は、以下の SQL Access スクリプトを実行できます。
ResultCode = SQLSetStatement(ConnectionId, "sp_TestNotNull");
ResultCode = SQLPrepareStatement(ConnectionId, StatementID);
ResultCode = SQLSetParamNull(StatementID, 1, 0, 0, 0);
ResultCode = SQLExecute(ConnectionId, BindList, StatementID);
ResultCode =SQLTransact( ConnectionID);
ResultCode = SQLClearStatement(ConnectionId, StatementID);
参照項目
SQLPrepareStatement()