错误和批处理

执行一批 SQL 语句的过程中发生错误时,可能会得到以下四个结果之一。 (每个可能的结果都是特定于数据源的,甚至可能依赖于批处理中包含的语句。)

  • 批处理中的任何语句都未执行。

  • 批处理中的任何语句都未执行,并且将回滚事务。

  • 执行错误语句之前的所有语句。

  • 执行错误语句以外的所有语句。

在前两种情况下,SQLExecuteSQLExecDirect 返回 SQL_ERROR。 在后两种情况下,根据实现情况,它们可能会返回 SQL_SUCCESS_WITH_INFO 或 SQL_SUCCESS。 在所有情况下,都可以使用 SQLGetDiagFieldSQLGetDiagRecSQLError 检索进一步的错误信息。 但是,此信息的性质和深度因数据源而异。 此外,此信息不太可能准确地标识出错的语句。