我们公司有一堆 VB6 应用程序。我们正在尝试调试随机 SQL 超时错误,并使用 SQL Server Profiler 对 Audit Login 事件进行跟踪。我们注意到连接是非池化的。我们将 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