【问题标题】:SQL Anywhere connection error: The driver doesn't support the version of ODBC behavior that the application requestedSQL Anywhere 连接错误:驱动程序不支持应用程序请求的 ODBC 行为版本
【发布时间】:2012-04-01 17:00:25
【问题描述】:

我正在尝试使用 WinXP 中的 .NET 3.5 应用程序连接到 SQL Anywhere 5 数据库(我知道它是 olllld!),它在独立的控制台应用程序中运行良好。但是,当我使用以下代码在插件中运行确切的代码,运行单独的 AppDomain(我能分辨出两者之间的唯一区别)时,我会在下面得到进一步的错误。

顺便说一句,两者都以相同的用户身份执行。

           using (OdbcConnection connection =
                new OdbcConnection(strConnect))
            {
                OdbcCommand command = new OdbcCommand(query, connection);
                command.CommandType = CommandType.Text;
                DataTable posRecordsTable = new DataTable();
                connection.Open();

OdbcException 异常返回以下错误:

索引 #0 消息:[Sybase][ODBC 驱动程序]无法连接到数据库服务器:数据库引擎未运行

索引 #1 消息:[Sybase][ODBC 驱动程序]无效的连接字符串属性

索引 #2 消息:[Sybase][ODBC 驱动程序]无效的连接字符串属性

索引 #3 消息:[Microsoft][ODBC Driver Manager] 驱动程序不支持应用程序请求的 ODBC 行为版本(请参阅 SQLSetEnvAttr)。

【问题讨论】:

  • 那么连接字符串是什么,混淆用户/密码等。很难说出它的哪一点,它可能不喜欢,没有看到它。
  • 托尼,问题是完全相同的连接字符串和代码在独立应用程序中工作正常 =(((((((())
  • 那个总是鼻屎。查看此msdn.microsoft.com/en-us/library/windows/desktop/…,它表明插件和控制台的应用程序域配置存在一些细微差别。可能值得将您的 appdomain 设置转储到文件中,看看您是否能发现一些东西。

标签: sql ado.net odbc sqlanywhere


【解决方案1】:

您的 AppDomain 上的驱动程序是否与您的独立设备具有相同的配置?我认为检查环境的相似性会对您有所帮助。通常通过查看驱动程序读取其信息的配置文件来解决此类错误。不太了解 SQL Anywhere,但总的来说,我遇到过此类问题,我通过更改连接信息或配置文件来修复它们。

【讨论】:

  • 拉吉夫,感谢您的回复。是的,这就是我想做的事情。一旦我弄清楚如何做到这一点并找到我的问题的解决方案,我会发布它以防其他人可以受益。
猜你喜欢
  • 1970-01-01
  • 2023-03-24
  • 2015-01-09
  • 1970-01-01
  • 1970-01-01
  • 2023-03-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多