一批 Transact-SQL 语句包含两个或多个语句,用分号(;))分隔,内置于传递给 SQLExecDirect 或 SQLPrepare 函数的单个字符串中。 例如:
SQLExecDirect(hstmt,
"SELECT * FROM Authors; SELECT * FROM Titles",
SQL_NTS);
批处理比单独提交语句更有效,因为网络流量通常会减少。 使用 SQLMoreResults 在当前结果集完成后定位在下一个结果集上。
当 ODBC 游标属性设置为行集大小为 1 的仅向前只读游标的默认值时,始终可以使用批处理。
如果在对 SQL Server 使用服务器游标时执行批处理,则服务器游标将隐式转换为默认结果集。 SQLExecDirect 或 SQLExecute 返回SQL_SUCCESS_WITH_INFO,对 SQLGetDiagRec 的 调用将返回:
szSqlState = "01S02", pfNativeError = 0
szErrorMsg = "[Microsoft][SQL Server Native Server Native Client]Cursor type changed."