简短的问题:我发现我需要使用MARS而不是ADO/OLEDB,这是正确的吗?
更长的解释:
我刚刚发现我的ODBC代码(使用"Driver = {SQL Native Client}",MFC CDatabase代码)需要有MARS("MARS_Connection = yes;"),因为虽然我在打开RecordSet时没有发出多个SELECT,但我做了获取一批行,然后需要打开另一个RecordSet来发出一个新的SELECT,然后返回到下一批的第一个RecordSet.没有MARS我得到ODBC错误"连接忙于另一个命令的结果".一切都很公平.
但是,我的代码与ADO/OLEDB("Provider = SQLNCLI",#import msado15.dll)相同,而不是ODBC.在同样的情况下,我没有必须指定"MarsConn = yes".
我感到困惑/惊讶.这是正确/预期的,还是我错过了什么?