如何使用语句 (ODBC)

使用语句

  1. 调用 SQLAllocHandle,同时将 HandleType 设置为 SQL_HANDLE_STMT,以分配语句句柄。

  2. (可选)调用SQLSetStmtAttr以设置语句选项,或调用 SQLGetStmtAttr 以获取语句属性。

    若要使用服务器游标,必须将游标属性设置为其默认值之外的值。

  3. (可选)如果要多次执行语句,可以使用 SQLPrepare 准备要执行的语句。

  4. (可选)如果语句具有绑定参数标记,通过使用 SQLBindParameter 将参数标记绑定到程序变量。如果是准备的语句,则可以调用 SQLNumParamsSQLDescribeParam 以查找参数的个数和特征。

  5. 使用 SQLExecDirect 直接执行语句。

    - 或 -

    如果是准备的语句,则可以使用 SQLExecute 多次执行该语句。

    - 或 -

    调用可返回结果的目录函数。

  6. 采用以下方法处理结果:将结果集列绑定到程序变量、通过使用 SQLGetData 将数据从结果集列移至程序变量,或是结合使用这两种方法。

    从语句的结果集中提取,每次提取一行。

    - 或 -

    通过使用块游标从结果集中提取,每次提取多个行。

    - 或 -

    调用 SQLRowCount 以确定 INSERT、UPDATE 或 DELETE 语句影响的行数。

    如果 SQL 语句可以有多个结果集,在每个结果集的末尾调用 SQLMoreResults 以查看是否还有更多待处理的结果集。

  7. 处理完结果后,可能需要执行以下操作,令语句句柄可用于执行新语句:

    • 如果未调用 SQLMoreResults,直到它返回 SQL_NO_DATA,则调用 SQLCloseCursor 以关闭游标。

    • 如果将参数标记绑定到程序变量,则调用 SQLFreeStmt(同时将 Option 设置为 SQL_RESET_PARAMS)以释放绑定参数。

    • 如果将结果集列绑定到程序变量,则调用 SQLFreeStmt(同时将 Option 设置为 SQL_UNBIND)以释放绑定列。

    • 若要重用语句句柄,请转至步骤 2。

  8. 调用 SQLFreeHandle,同时将 HandleType 设置为 SQL_HANDLE_STMT,以释放语句句柄。

请参阅

其他资源