直接执行语句 (ODBC)
适用于:SQL Server Azure SQL 数据库 Azure SQL 托管实例 Azure Synapse Analytics Analytics Platform System (PDW)
直接执行语句并且只执行一次
如果语句具有参数标记,请使用 SQLBindParameter 将每个参数绑定到程序变量。 使用数据值填充程序变量,然后设置任何执行时数据参数。
调用 SQLExecDirect 来执行该语句。
如果使用数据执行时输入参数, SQLExecDirect 将返回SQL_NEED_DATA。 使用 SQLParamData 和 SQLPutData 以区块方式发送数据。
通过使用按列参数绑定多次执行语句
调用 SQLSetStmtAttr 以设置以下属性:
将 SQL_ATTR_PARAMSET_SIZE 设置为参数集 (S) 的数目。
将 SQL_ATTR_PARAM_BIND_TYPE 设置为 SQL_PARAMETER_BIND_BY_COLUMN。
将 SQL_ATTR_PARAMS_PROCESSED_PTR 属性设置为指向 SQLUINTEGER 变量,以包含所处理的参数个数。
将 SQL_ATTR_PARAMS_STATUS_PTR 设置为指向 SQLUSSMALLINT 变量的数组 [S],以包含参数状态指示器。
对于每个参数标记:
分配 S 参数缓冲区的数组以存储数据值。
分配 S 参数缓冲区的数组以存储数据长度。
调用 SQLBindParameter 将参数数据值和数据长度数组绑定到语句参数。
设置任意执行时数据 text 或 image 参数。
将 S 数据值和 S 数据长度放到绑定参数数组中。
调用 SQLExecDirect 来执行该语句。 驱动程序将有效地执行该语句 S 次,每组参数一次。
如果使用数据执行时输入参数, SQLExecDirect 将返回SQL_NEED_DATA。 使用 SQLParamData 和 SQLPutData 以区块方式发送数据。
通过使用按行参数绑定多次执行语句
分配结构数组 [S],其中,S 是参数的集合数。 该结构对于每个参数有一个元素,并且每个元素有两部分:
第一部分是合适的数据类型的变量,以包含参数数据。
第二部分是 SQLINTEGER 变量,以包含状态指示器。
调用 SQLSetStmtAttr 以设置以下属性:
将 SQL_ATTR_PARAMSET_SIZE 设置为参数集 (S) 的数目。
将 SQL_ATTR_PARAM_BIND_TYPE 设置为在步骤 1 中分配的结构的大小。
将 SQL_ATTR_PARAMS_PROCESSED_PTR 属性设置为指向 SQLUINTEGER 变量,以包含所处理的参数个数。
将 SQL_ATTR_PARAMS_STATUS_PTR 设置为指向 SQLUSSMALLINT 变量的数组 [S],以包含参数状态指示器。
对于每个参数标记,调用 SQLBindParameter 以将参数的数据值和数据长度指针指向在步骤 1 中分配的结构数组的第一个元素中的变量。 如果参数是执行时数据参数,则设置它。
用数据值填充绑定参数缓冲区数组。
调用 SQLExecDirect 来执行该语句。 驱动程序将有效地执行该语句 S 次,每组参数一次。
如果使用数据执行时输入参数, SQLExecDirect 将返回SQL_NEED_DATA。 使用 SQLParamData 和 SQLPutData 以区块方式发送数据。
请注意,列和行绑定通常与 SQLPrepare 函数和 SQLExecute 结合使用,而不是与 SQLExecDirect 一起使用。