SQLBindParameterSQLBindParameter

適用対象: ○SQL Server ○Azure SQL Database ○Azure SQL Data Warehouse ○Parallel Data WarehouseAPPLIES TO: yesSQL Server yesAzure SQL Database yesAzure SQL Data Warehouse yesParallel Data Warehouse

場合は、SQLBindParameterのデータを提供するために使用するときに、データ変換の負担をなくすことができます、SQL ServerSQL Serverネイティブ クライアントの ODBC ドライバー、アプリケーションのクライアントとサーバーの両方のコンポーネントに大幅なパフォーマンス向上の結果です。SQLBindParameter can eliminate the burden of data conversion when used to provide data for the SQL ServerSQL Server Native Client ODBC driver, resulting in significant performance gains for both the client and server components of applications. その他に、概数データ型を挿入または更新するときに有効桁数を失うことが少なくなるという利点もあります。Other benefits include reduced loss of precision when inserting or updating approximate numeric data types.

注意

挿入時に文字wcharバイナリ形式に変換後のデータのサイズとは対照的に渡されるデータのサイズ、イメージ列の種類のデータを使用します。When inserting char and wchar type data into an image column, the size of the data being passed in is used, as opposed to the size of the data after conversion to a binary format.

パラメーター配列の配列要素の 1 つで SQL ServerSQL Server Native Client ODBC ドライバー エラーが発生しても、残りの配列要素に対しては引き続きステートメントが実行されます。If the SQL ServerSQL Server Native Client ODBC driver encounters an error on a single array element of an array of parameters, the driver continues to execute the statement for the remaining array elements. アプリケーションがこのステートメントのパラメーター状態要素の配列をバインドした場合は、その配列を基にして、エラーが発生したパラメーター行を特定できます。If the application has bound an array of parameter status elements for the statement, the rows of parameters generating errors can be determined from the array.

SQL ServerSQL Server Native Client ODBC ドライバーを使用する場合は、入力パラメーターのバインド時に SQL_PARAM_INPUT を指定します。When using the SQL ServerSQL Server Native Client ODBC driver, specify SQL_PARAM_INPUT when binding input parameters. OUTPUT キーワードで定義されたストアド プロシージャ パラメーターをバインドするときは、SQL_PARAM_OUTPUT または SQL_PARAM_INPUT_OUTPUT のみを指定してください。Only specify SQL_PARAM_OUTPUT or SQL_PARAM_INPUT_OUTPUT when binding stored procedure parameters defined with the OUTPUT keyword.

ではの信頼性が低い、SQL ServerSQL Serverネイティブ クライアントの ODBC ドライバーの場合は、バインドされたパラメーター配列の配列要素、ステートメントの実行でエラーが発生します。SQLRowCount is unreliable with the SQL ServerSQL Server Native Client ODBC driver if an array element of a bound-parameter array causes an error in statement execution. また、ODBC ステートメント属性 SQL_ATTR_PARAMS_PROCESSED_PTR は、エラーが発生する前に処理された行数を報告します。The ODBC statement attribute SQL_ATTR_PARAMS_PROCESSED_PTR reports the number of rows processed before the error occurs. その後、必要に応じてパラメーター状態配列全体をアプリケーションで調査することにより、正常に実行されたステートメント数を検出できます。The application can then traverse its parameter status array to discover the number of statements successfully executed, if necessary.

SQL 文字型のパラメーターのバインドBinding Parameters for SQL Character Types

渡される SQL データ型が、文字型の場合ColumnSize文字 (バイトではなく) のサイズです。If the SQL data type passed in is a character type, ColumnSize is the size in characters (not bytes). (バイト単位)、データの文字列の長さが 8000 より大きい場合ColumnSizeに設定する必要がありますSQL_SS_LENGTH_UNLIMITEDSQL 型のサイズに制限がないことを示します。If the length of the data string in bytes is greater than 8000, ColumnSize should be set to SQL_SS_LENGTH_UNLIMITED, indicating that there is no limit to the size of the SQL type.

たとえば、SQL データ型の場合SQL_WVARCHARColumnSize 4000 より大きくする必要がありますできません。For instance, if the SQL data type is SQL_WVARCHAR, ColumnSize should not be greater than 4000. 実際のデータ長がより大きいかどうか、4000、 ColumnSizeに設定する必要がありますSQL_SS_LENGTH_UNLIMITEDようにnvarchar (max) ドライバーによって使用されます。If the actual data length is greater than 4000, then ColumnSize should be set to SQL_SS_LENGTH_UNLIMITED so that nvarchar(max) will be used by driver.

SQLBindParameter とテーブル値パラメーターSQLBindParameter and Table-Valued Parameters

テーブル値パラメーターは、他のパラメーターの型のような場合は、SQLBindParameter がバインドされます。Like other parameter types, table-valued parameters are bound by SQLBindParameter.

テーブル値パラメーターがバインドされた後、そのパラメーターの列もバインドされます。After a table-valued parameter has been bound, its columns are also bound. 列をバインドするを呼び出すSQLSetStmtAttr SQL_SOPT_SS_PARAM_FOCUS にテーブル値パラメーターの序数を設定します。To bind the columns, you call SQLSetStmtAttr to set SQL_SOPT_SS_PARAM_FOCUS to the ordinal of the table-valued parameter. テーブル値パラメーターの列ごとに、場合は、SQLBindParameter を呼び出してください。Then, call SQLBindParameter for each column in the table-valued parameter. 最上位パラメーター バインドに戻るには、SQL_SOPT_SS_PARAM_FOCUS に 0 を設定します。To return to the top-level parameter bindings, set SQL_SOPT_SS_PARAM_FOCUS to 0.

テーブル値パラメーターの記述子フィールドへのマッピングのパラメーターに関する情報を参照してくださいバインドおよび Data Transfer of Table-Valued パラメーターと列の値です。For information about mapping parameters to descriptor fields for table-valued parameters, see Binding and Data Transfer of Table-Valued Parameters and Column Values.

テーブル値パラメーターの詳細については、次を参照してください。テーブル値パラメーター (ODBC)します。For more information about table-valued parameters, see Table-Valued Parameters (ODBC).

SQLBindParameter による機能強化された日付と時刻のサポートSQLBindParameter Support for Enhanced Date and Time Features

日付/時刻型のパラメーターの値で説明したように変換C から SQL への変換Parameter values of date/time types are converted as described in Conversions from C to SQL. 注型のパラメーター時間datetimeoffset必要がありますValueTypeとして指定されたSQL_C_DEFAULTまたはSQL_C_BINARY場合、対応する構造体 (SQL_SS_TIME2_STRUCTSQL_SS_TIMESTAMPOFFSET_STRUCT) 使用されます。Note that parameters of type time and datetimeoffset must have ValueType specified as SQL_C_DEFAULT or SQL_C_BINARY if their corresponding structures (SQL_SS_TIME2_STRUCT and SQL_SS_TIMESTAMPOFFSET_STRUCT) are used.

詳細については、次を参照してください。日付と時刻の強化(ODBC)します。For more information, see Date and Time Improvements (ODBC).

SQLBindParameter による大きな CLR UDT のサポートSQLBindParameter Support for Large CLR UDTs

場合は、SQLBindParameter大きい CLR ユーザー定義型 (Udt) がサポートされています。SQLBindParameter supports large CLR user-defined types (UDTs). 詳細については、次を参照してください。 Large CLR User-Defined 型(ODBC)します。For more information, see Large CLR User-Defined Types (ODBC).

参照See Also

ODBC API 実装の詳細 ODBC API Implementation Details
SQLBindParameter 関数SQLBindParameter Function