我正在使用以下代码模式使用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数据库调用。如果我在一个线程中调用所有内容,它似乎有效。这可以解释一下吗?答案 0 :(得分:2)
如果任何其他可怜的灵魂在这里结束,我的解决方案是:
就性能而言,这不是一个理想的解决方案,但它确实有效。