简短的问题:
我发现我需要使用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”.

我感到困惑/惊讶.这是正确/预期的,还是我错过了什么?

解决方法

如果有人有兴趣,我发现问题/区别是什么.由于ADO案例中的一个微妙问题,我不得不重新访问代码,结果证明这是相关的.

如果你需要多个并发RecordSet,那么使用ODBC很容易,因为如果你不使用MARS,它只是错误,如上所述.

然而,使用ADO / OLEDB,它更加微妙.当我不使用MARS时,多个RecordSets似乎正常工作.但是,在幕后,会发生什么是ADO自动为每个会话打开另一个新会话,但你不知道它并且无法分辨.事实证明这是非常缓慢的,因为每个会话都需要一个完整的审计登录和关闭,我一直在创造,关闭和重新创造.

因此,我为ADO提供了“MARS Connection = True”,并且lo&看来,它现在的行为与ODBC类似,重新使用现有连接而不是创建新连接.

所以道德是:你必须拥有MARS for ODBC,而ADO / OLEDB将允许多个并发RecordSets而不使用MARS做自己的事情,但它可能(好)不是你想要/最好的.

来自MARS的ODBC是来自VENUS的ADO/OLEDB吗?的更多相关文章

  1. Swift设计模式之访问者模式

    转自Swift设计模式原文Design-Patterns-In-Swift

  2. 来自MARS的ODBC是来自VENUS的ADO/OLEDB吗?

    更长的解释:我刚刚发现我的ODBC代码需要有MARS,因为虽然我在打开RecordSet时没有发出多个SELECT,但我这样做了获取一批行,然后需要打开另一个RecordSet来发出新的SELECT,然后返回到下一批的第一个RecordSet.没有MARS我得到ODBC错误“连接忙于另一个命令的结果”.一切都很公平.但是,我的代码与ADO/OLEDB相同,而不是ODBC.在同样的情况下,我没有必须指定“MarsConn=yes”.我感到困惑/惊讶.这是正确/预期的,还是我错过了什么?

随机推荐

  1. 基于EJB技术的商务预订系统的开发

    用EJB结构开发的应用程序是可伸缩的、事务型的、多用户安全的。总的来说,EJB是一个组件事务监控的标准服务器端的组件模型。基于EJB技术的系统结构模型EJB结构是一个服务端组件结构,是一个层次性结构,其结构模型如图1所示。图2:商务预订系统的构架EntityBean是为了现实世界的对象建造的模型,这些对象通常是数据库的一些持久记录。

  2. Java利用POI实现导入导出Excel表格

    这篇文章主要为大家详细介绍了Java利用POI实现导入导出Excel表格,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  3. Mybatis分页插件PageHelper手写实现示例

    这篇文章主要为大家介绍了Mybatis分页插件PageHelper手写实现示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

  4. (jsp/html)网页上嵌入播放器(常用播放器代码整理)

    网页上嵌入播放器,只要在HTML上添加以上代码就OK了,下面整理了一些常用的播放器代码,总有一款适合你,感兴趣的朋友可以参考下哈,希望对你有所帮助

  5. Java 阻塞队列BlockingQueue详解

    本文详细介绍了BlockingQueue家庭中的所有成员,包括他们各自的功能以及常见使用场景,通过实例代码介绍了Java 阻塞队列BlockingQueue的相关知识,需要的朋友可以参考下

  6. Java异常Exception详细讲解

    异常就是不正常,比如当我们身体出现了异常我们会根据身体情况选择喝开水、吃药、看病、等 异常处理方法。 java异常处理机制是我们java语言使用异常处理机制为程序提供了错误处理的能力,程序出现的错误,程序可以安全的退出,以保证程序正常的运行等

  7. Java Bean 作用域及它的几种类型介绍

    这篇文章主要介绍了Java Bean作用域及它的几种类型介绍,Spring框架作为一个管理Bean的IoC容器,那么Bean自然是Spring中的重要资源了,那Bean的作用域又是什么,接下来我们一起进入文章详细学习吧

  8. 面试突击之跨域问题的解决方案详解

    跨域问题本质是浏览器的一种保护机制,它的初衷是为了保证用户的安全,防止恶意网站窃取数据。那怎么解决这个问题呢?接下来我们一起来看

  9. Mybatis-Plus接口BaseMapper与Services使用详解

    这篇文章主要为大家介绍了Mybatis-Plus接口BaseMapper与Services使用详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

  10. mybatis-plus雪花算法增强idworker的实现

    今天聊聊在mybatis-plus中引入分布式ID生成框架idworker,进一步增强实现生成分布式唯一ID,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

返回
顶部