次の方法で共有


SQLPutData

SQLPutData を使用して 65,535 バイトを超えるデータ (SQL Server バージョン 4.21a の場合) または 400 KB 以上のデータ (SQL_LONGVARCHAR ()、SQL Server SQL_WLONGVARCHAR (ntext) またはSQL_LONGVARBINARY (textimage) 列に対して 400 KB 以上のデータを送信する場合は、次の制限が適用されます。

  • 参照されるパラメーターには、INSERT ステートメントの insert_value を指定できます。

  • 参照されるパラメーターには、UPDATE ステートメントの SET 句の を指定できます。

SQL Serverを実行しているサーバーにブロック内のデータを提供する SQLPutData 呼び出しのシーケンスを取り消すと、バージョン 6.5 以前を使用すると、列の値が部分的に更新されます。 textSQLCancel が呼び出されたときに参照された 、ntext、または image 列は、中間プレースホルダー値に設定されます。

注意

SQL Server Native Client ODBC ドライバーでは、SQL Server バージョン 6.5 以前への接続はサポートされていません。

診断

SQLPutData には、特定SQL Server Native Client SQLSTATE が 1 つあります。

SQLSTATE エラー 説明
22026 文字列データの長さが合致しません 送信するデータの長さがアプリケーションによって指定されている場合 (たとえば、SQL_LEN_DATA_AT_EXEC(n) で n が 0 より大きい場合、SQLPutData を介してアプリケーションによって指定されたバイトの合計数が、指定した長さと一致する必要があります。

SQLPutData とテーブル値パラメーター

SQLPutData は、テーブル値パラメーターで変数行バインドを使用する場合に、アプリケーションによって使用されます。 StrLen_Or_Ind パラメーターは、ドライバーがテーブル値パラメーター データの次の行または行のデータを収集する準備ができているか、使用できる行がないことを示します。

  • 値が 0 を超える場合は、次の行の値のセットを使用できることを示します。

  • 値が 0 の場合は、送信される行がなくなったことを示します。

  • 値が 0 未満の場合は、エラーが発生し、"文字列長またはバッファー長が正しくありません" というメッセージで SQLState HY090 の診断レコードが記録されます。

DataPtr パラメーターは無視されますが、NULL 以外の値に設定する必要があります。 詳細については、「 Table-Valued パラメーターと列値のバインドとデータ転送」の「可変 TVP 行バインド」のセクションを参照してください。

StrLen_Or_Indに SQL_DEFAULT_PARAM 以外の値、または 0 から SQL_PARAMSET_SIZE までの数値 (つまり、SQLBindParameter の ColumnSize パラメーター) がある場合は、エラーになります。 このエラーが発生すると、SQLPutData は、"文字列長またはバッファー長が正しくありません" というメッセージで SQLSTATE=HY090 の SQL_ERROR を返します。

テーブル値パラメーターの詳細については、「テーブル値パラメーター (ODBC)」を参照してください。

SQLPutData による機能強化された日付と時刻のサポート

日付/時刻型のパラメーター値は、「 C から SQL への変換」の説明に従って変換されます。

詳細については、「 日付と時刻の機能強化 (ODBC)」を参照してください。

SQLPutData による大きな CLR UDT のサポート

SQLPutData は、大きな CLR ユーザー定義型 (UDT) をサポートしています。 詳細については、「 大きな CLR User-Defined型 (ODBC)」を参照してください。

参照

SQLPutData 関数
ODBC API 実装の詳細