2010-05-28 75 views
1

我有SYBASE 12.5安装在我的服务器以及我的电脑上,我无法获得正确的连接字符串。Sybase ODBC连接字符串与.net

我已经使用connectionstrings.com,但无法获得正确的。

运行过程中出现和建立连接后

驱动= {的Sybase ASE ODBC驱动}; SRVR =服务器;数据库= DATABASE_NAME; UID = USER_NAME; PWD =通过;

和THIC连接字符串

我收到 数据源= “” 驱动程序= “” 数据库= “” ServerVersion =无效操作的一些其他组合。连接关闭

我想在那里纠正什么。

请帮忙。

感谢

回答

1

我没有看到在连接字符串中声明的端口,所以我不知道这是否是问题。无论如何,如果你使用的是Windows,你可以尝试一招是:

  1. 桌面创建(如foo.txt的)上的文本文件
  2. 重命名与udl扩展(例如Foo.udl)的文件。
  3. 双击该文件。这应该打开ODBC属性页面(又名数据链接属性),您可以在其中构建连接字符串并测试连接。由于该文件的核心仍然是文本文件,因此您可以在文本编辑器中打开文件,并为您提供连接字符串。
+0

在提供程序列表中找不到Sybase odbc提供程序。我得到的是sybase Oledb提供者。 – Nits 2010-05-28 04:46:02

+0

@nitinkhanna - 这似乎表明您的计算机上没有安装Sybase ODBC驱动程序。 – Thomas 2010-05-28 14:58:18

0

我意识到这是一个老问题。也许这会帮助别人试图解决他们的Sybase问题。

也就是说,在构建.Net应用程序时,通常应该使用本机.Net对象进行数据库访问(如果可用)。 Sybase确实提供了它们,尽管它们似乎有点难以实现。如果您的组织正在使用Sybase数据库,则有人应该有权从SAP/Sybase portal中为您下载适当的工具。注意这个引用的链接是“开发者”版本,可能不适合您的要求。

当使用Sybase.Data.AseClient.AseConnection,连接字符串可能是这样的:

Server=MyServer; Port=MyPort; Database=MyDatabase; User ID=MyUserID; Password=MyPassword 

请注意,您可能还需要明确设置在连接字符串中的字符集和代码页,以及:

Charset=ClientDefault;CodePageType=other;clientCharset=iso_1; 

上的字符集/代码页的详细信息,请参见here

上述连接字符串适用于我。我必须添加charset部分才能在我的开发机器之外工作。

另请注意.Net4对象可能有内存泄漏问题。一个简单的SQL语句会定期触发“尝试读取或写入受保护的内存”例外。一旦我切换到.Net2对象,该错误就消失了。请参阅here

不幸的是,Sybase驱动程序的整体质量似乎很低。我能够获得ODBC版本的驱动程序的早期版本(我相信15.03),但是.Net2连接对象总是会抛出实例化时出现的DLL错误。现在我正在使用15.70,并且.Net4对象有上述内存泄漏问题,但目前.Net2对象工作正常。