ODBC - 从一个应用程序到同一数据源的多个连接

时间:2010-04-28 15:51:26

标签: c windows odbc

我依稀记得在某处(在MSDN ODBC文档中?)读取一个应用程序不能与单个数据源建立多个连接。在我看来,我需要一个连接,应用程序的所有线程必须共享。 我试图查看这些信息,但我似乎无法再找到它了。有谁知道/记住这是如何工作的?
这一切都可能成为我们应用程序中的问题,因为它的一些线程将动态连接到他们选择的数据源。我不希望看到随机连接错误,如果其中两个将同时连接到一个源,所以我想仔细检查这个信息。

2 个答案:

答案 0 :(得分:2)

也许您在the MSDN documentation中引用的语句是指在单个连接上只能激活一个语句的语句。它说:

  

每个连接多个活动语句

     

在SQL Server收到语句后,SQL Server TDS协议不允许接受来自该连接的任何其他语句,直到出现以下情况之一:

     
      
  • 客户端应用程序处理整个结果集。
  •   
  • 客户端发送一条语句告诉服务器它可以关闭结果集的其余部分。
  •   
     

这意味着当ODBC应用程序使用默认结果集时,SQL Server不支持连接句柄上的多个活动语句句柄,并且只能在任何时间点处理一个语句。

     

但是,当ODBC应用程序使用API​​服务器游标时,驱动程序可以在连接上支持多个活动语句。当在客户端收到每个游标命令的行集时,SQL Server认为该语句已完成,并且它接受来自该连接句柄的另一个语句句柄的另一个语句。

多个连接都没问题。每个连接多个语句,不太好。

答案 1 :(得分:1)

不,ODBC本身没有限制。特定驱动程序可能由于某种原因限制了连接,但根据规范我不知道有任何限制。