有没有办法在DSN中设置ODBC连接选项?

时间:2012-10-18 23:06:41

标签: sql sql-server sql-server-2008 cursor odbc

我的应用程序(测试用例自动化工具)不支持调用ODBC的SQLSetStatmentOption。我需要设置光标选项SQL_SOPT_SS_CURSOR_OPTIONS to SQL_CO_FFO_AF。现在我使用连接字符串(没有DSN)连接到服务器。我正在使用sqlsrv32.dll or Sqlncl10.dll

有没有办法在我的工具和MSSQL服务器之间的DSN(或其他层)中设置游标选项?该工具处理创建游标(或结果集)并以一种似乎模糊任何直接管理它的能力的方式迭代结果集。它允许调用SQLSetConnectAttr(),但据我所知,没有办法在那里设置游标选项。

所有这一切都是为了加速通过远程连接检索数据。在SQL Management Studio中,我获得了与本地或远程数据库相当的响应时间,但在自动化工具中,远程查询需要花费数百倍的时间,可能是因为它似乎正在为每一行进行一次往返服务器。

1 个答案:

答案 0 :(得分:0)

无法在我知道的连接字符串中设置语句选项。在ODBC 1.0和2.0中,您可以为语句属性调用SQLSetConnectOption,并在该连接中创建的每个语句中设置这些属性,但a)这是API的旧版本(虽然它可能仍然有效)b)您仍然无法做到来自DSN。在unixODBC中,您可以在DSN中设置一些环境和连接属性,但显然是Windows。

我不相信你已经正确识别了问题,即使你有,你怎么知道你的应用程序不使用SQLGetData(在设置SQL_CO_FFO_AF时被禁用)。你确定你没有启用MARs。您是否尝试获取ODBC跟踪以查看应用程序正在执行的操作?