2

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

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

运行并建立连接后

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

以及其他一些连接字符串的组合

我得到 Datasource ="" Driver ="" DataBase="" ServerVersion = Invalid Operation。连接已关闭

我想纠正什么。

请帮忙。

谢谢

4

3 回答 3

1

我没有使用过 Sybase,但我认为connectionstring.com上的这个页面肯定可以帮助您。

于 2010-05-28T04:41:26.893 回答
1

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

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

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

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

使用 Sybase.Data.AseClient.AseConnection 时,您的连接字符串可能如下所示:

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

请注意,您可能还需要在连接字符串中显式设置字符集和代码页:

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

有关字符集/代码页的详细信息,请参见此处

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

另请注意 .Net4 对象可能存在内存泄漏问题。一个简单的 SQL 语句经常为我触发“尝试读取或写入受保护的内存”异常。一旦我切换到 .Net2 对象,该错误就消失了。见这里

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

于 2015-07-31T17:00:30.670 回答