我们公司有很多VB6应用程序。我们正在尝试调试一个随机的SQL超时错误,并在Audit Login事件上使用SQL Server Profiler进行跟踪。我们注意到连接是非池化的。我们使用SQLOLEDB提供程序与SQL Server 2000和2005。我在互联网上搜索,发现所有内容都说连接默认情况下在SQLOLEDB提供程序中是池化的,但我们没有看到这一点。以下是我们用于连接到数据库的代码。我们真的需要这些连接被池化,因为我们认为这可能是我们随机超时错误的问题所在。是否有人能够解释为什么连接池不起作用以及使其工作的任何方法?谢谢。
Dim cnn As New ADODB.Connection
cnn.ConnectionString = "Provider=SQLOLEDB;Data Source=xxx;Catalog=xxx;User ID=xxx Password=xxx;"
Call cnn.Open
Dim cmd As New ADODB.Command
Set cmd.ActiveConnection = cnn
cmd.CommandText = "SELECT * FROM [Table]"
Dim rs As New ADODB.RecordSet
Call rs.Open(cmd, , adOpenStatic, adLockOptimistic)
While Not rs.eof
'Do stuff
Call rs.MoveNext
Wend
'Close and Dispose connection here