我正在使用以下代码模式使用 ODBC 在第三方数据库上运行一些查询。
如果我使用 ODBC 数据源管理器手动启用连接池,一切正常。
问题是如果禁用连接池,我在第二次数据库调用时收到 ODBC 连接错误。
基本上,我想避免在客户计算机上启用连接池的部署麻烦(除非有一些简单的方法)。
下面的 ODBC 代码有问题吗?
using (var conn = GetODBCConnection())
{
using (var sdr = new OdbcCommand("SELECT * FROM [TABLE]", conn).ExecuteReader())
{
while (sdr.Read())
{
// use data
}
}
}
private OdbcConnection GetGenieConnection()
{
var conn = new OdbcConnection(_connString);
conn.Open();
return conn;
}
PS:我使用的是 4D v12 ODBC 驱动程序。我调查了连接字符串选项以打开连接池,但找不到任何东西。
编辑:这种行为可能与线程有关吗?我在 BackgroundWorker 线程中调用了第一个 ODBC 数据库调用。如果我在一个线程中调用所有内容,它似乎可以工作。这可以解释吗?