次の方法で共有


IRowsetFastLoad::InsertRow (OLE DB)

一括コピー行セットに行を追加します。 サンプルについては、「IRowsetFastLoad を使用したデータの一括コピー (OLE DB)」および「IROWSETFASTLOAD と ISEQUENTIALSTREAM を使用した SQL SERVER への BLOB データの送信 (OLE DB)」を参照してください。

構文

HRESULT InsertRow( 
      HACCESSOR hAccessor, 
      void* pData);

引数

  • hAccessor[in]
    一括コピーの行データを定義するアクセサーのハンドルを指定します。 参照されるアクセサーは行アクセサーで、データ値を保持するコンシューマー所有のメモリをバインドします。

  • pData[in]
    データ値を保持するコンシューマー所有のメモリへのポインターを指定します。 詳細については、「DBBINDING 構造体」を参照してください。

リターン コード値

  • S_OK
    メソッドが成功しました。 すべての列のバインド状態値は、DBSTATUS_S_OK または DBSTATUS_S_NULL です。

  • E_FAIL
    エラーが発生しました。 エラー情報は、行セットのエラー インターフェイスから参照できます。

  • E_INVALIDARG
    pData 引数に NULL ポインターが設定されました。

  • E_OUTOFMEMORY
    SQLNCLI11 では、要求を完了するのに必要なメモリを割り当てることができませんでした。

  • E_UNEXPECTED
    既に IRowsetFastLoad::Commit メソッドによって無効になっている一括コピー行セットに対して呼び出されました。

  • DB_E_BADACCESSORHANDLE
    コンシューマーが指定した hAccessor 引数が無効でした。

  • DB_E_BADACCESSORTYPE
    指定されたアクセサーが行アクセサーではなかったか、コンシューマー所有のメモリが指定されませんでした。

説明

コンシューマー データを列の SQL Server データ型に変換するときにエラーが発生すると、SQL Server Native Client OLE DB プロバイダーから E_FAIL が返されます。 InsertRow メソッドを使用するか、Commit メソッドのみを使用して、データを SQL Server に転送できます。 InsertRow メソッドを使用する場合、コンシューマー アプリケーションは、データ型変換エラーの通知を受け取るまで、誤ったデータを使用してこのメソッドを何回も呼び出す可能性があります。 Commit メソッドでは、すべてのデータがコンシューマーにより正しく指定されたことが保証されるので、コンシューマーは適切に Commit を使用することで、必要に応じてデータを検証できます。

SQL Server Native Client OLE DB プロバイダーの一括コピー行セットは書き込み専用です。 SQL Server Native Client OLE DB プロバイダーでは、コンシューマーから行セットをクエリできるメソッドは公開していません。 処理を終了する場合、コンシューマーは Commit メソッドを呼び出さずに、IRowsetFastLoad インターフェイスの参照を解放できます。 コンシューマーが行セットに挿入した行にアクセスして値を変更する機能や、そのような行を行セットから個別に削除する機能はありません。

一括コピーされる行は、サーバー上で SQL Server 用に形式が設定されます。 行の形式は、ANSI_PADDING など、接続やセッションに設定されたオプションの影響を受けます。 このようなオプションは、SQL Server Native Client OLE DB プロバイダーにより確立された接続に対して既定で有効になります。

関連項目

その他の技術情報

IRowsetFastLoad (OLE DB)