执行一批 SQL 语句时发生错误时,可能会得到以下四个结果之一。 (每个可能的结果都是特定于数据源的,甚至可能依赖于批处理中包含的语句。
批处理中未执行任何语句。
批处理中未执行任何语句,事务会被回滚。
在错误语句之前的所有语句都会被执行。
除错误语句外,执行所有其他语句。
在前两种情况下, SQLExecute 和 SQLExecDirect 返回SQL_ERROR。 在后两种情况下,根据实现,它们可能会返回SQL_SUCCESS_WITH_INFO或SQL_SUCCESS。 在所有情况下,都可以使用 SQLGetDiagField、 SQLGetDiagRec 或 SQLError 检索进一步的错误信息。 但是,此信息的性质和深度特定于数据源。 此外,此信息不太可能准确标识错误中的语句。