延迟的缓冲区
延迟的缓冲区是指在函数调用中指定之后的某个时间使用其值的缓冲区。 例如, SQLBindParameter 用于将数据缓冲区与 SQL 语句中的参数相关联或 绑定 。 应用程序指定参数的编号,并传递缓冲区的地址、字节长度和类型。 驱动程序会保存这些信息,但不会检查缓冲区的内容。 稍后,当应用程序执行语句时,驱动程序会检索信息,使用这些信息检索参数数据并将其发送到数据源。 因此,会延迟在缓冲区中输入数据。 由于在一个函数中指定了延迟缓冲区并将其用于另一个函数,因此当驱动程序仍预期延迟缓冲区存在时,释放延迟缓冲区会发生应用程序编程错误;有关详细信息,请参阅本部分后面的分配和释放缓冲区。
输入和输出缓冲区都可以延迟。 下表总结了延迟缓冲区的使用。 请注意,绑定到结果集列的延迟缓冲区是使用 SQLBindCol 指定的,绑定到 SQL 语句参数的延迟缓冲区是使用 SQLBindParameter 指定的。
缓冲区的使用 | 类型 | 指定函数 | 使用者 |
---|---|---|---|
发送输入参数的数据 | 延迟输入 | SQLBindParameter | SQLExecute SQLExecDirect |
发送数据以在结果集中更新或插入行 | 延迟输入 | SQLBindCol | SQLSetPos |
返回输出和输入/输出参数的数据 | 延迟输出 | SQLBindParameter | SQLExecute SQLExecDirect |
返回结果集数据 | 延迟输出 | SQLBindCol | SQLFetch SQLFetchScroll SQLSetPos |