延迟的缓冲区

延迟缓冲区是在函数调用中指定后,稍后才会使用其值。 例如,使用 SQLBindParameter 将数据缓冲区与 SQL 语句中的参数相关联或 绑定 。 指定参数的数目,并传递缓冲区的地址、字节长度和类型。 驱动程序保存此信息,但不检查缓冲区的内容。 稍后,执行语句时,驱动程序将检索信息,并使用它检索参数数据并将其发送到数据源。 因此,会延迟在缓冲区中输入数据。 由于延迟缓冲区在一个函数中指定并在另一个函数中使用,因此如果在驱动程序仍然需要该缓冲区时释放它,这就是应用程序编程错误。 有关详细信息,请参阅本节后面的 分配和释放缓冲区

延迟的缓冲区类型

输入和输出缓冲区都可以延迟。 下表总结了延迟缓冲区的使用。 请注意,绑定到结果集列的延迟缓冲区是使用 SQLBindCol 指定的,绑定到 SQL 语句参数的延迟缓冲区是使用 SQLBindParameter 指定的。

缓冲区的使用 类型 指定函数 使用者
发送输入参数的数据 延迟输入 SQLBindParameter SQLExecute
SQLExecDirect
发送数据以在结果集中更新或插入行 延迟输入 SQLBindCol SQLSetPos
SQLBulkOperations
返回输出和输入/输出参数的数据 延迟输出 SQLBindParameter SQLExecute
SQLExecDirect
返回结果集数据 延迟输出 SQLBindCol SQLFetch
SQLFetchScroll SQLSetPos