Sybase ODBC连接使用.net的字符串

时间:2010-05-28 04:34:03

标签: c# .net database-connection connection-string sybase-ase

我在我的服务器和PC上安装了SYBASE 12.5,我无法获得正确的连接字符串。

我使用了connectionstrings.com但无法获得正确的。

runnig并建立连接后

Driver = {Sybase ASE ODBC Driver}; srvr = server_name; database = database_name; UID = user_name; PWD = pass;

和其他一些连接字符串

的组合

我得到了 数据源=“” 司机=“” 数据库=“” ServerVersion =无效操作。连接已关闭

我想要纠正的是什么。

请帮忙。

由于

3 个答案:

答案 0 :(得分:1)

我没有使用过Sybase,但我认为this page connectionstring.com肯定可以为您提供帮助。

答案 1 :(得分:1)

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

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

答案 2 :(得分: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和codepage:

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

有关charset / codepage的详细信息,请参阅here

上面的连接字符串对我有用。我必须添加charset部分才能让它在我的开发机器之外工作。

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

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