【发布时间】:2019-12-26 09:47:10
【问题描述】:
我正在使用带有 .NET 4.0 和 Firebird ADO 提供程序版本 4.6 的 Visual Studio 2017。我无法连接到另一台服务器上的数据库文件,然后是 de Web 服务和 Firebird 服务。
例如:
Firebird host: localhost
Firebird port: 3050
数据库文件路径:\\\\server1\C$\Databases\test.fdb
当我尝试设置连接字符串时,我创建它如下所示:
connectionstring = "User ID=sysdba;Password=masterkey;Database=localhost/3050:\\server1\C$\Databases\test.fdb;DataSource=localhost;Port=3050;Charset=NONE;";
当我尝试连接时,我收到消息“不可用的数据库”。当我对 Delphi 项目进行同样的尝试时,它确实可以工作,所以我确信主机、端口和路径都可以工作。这是 de .NET Firebird 提供程序中的错误还是如何修复我的连接字符串?
我如何在 Delphi 中建立连接字符串:
connectionstring := 'localhost/3050:\\server1\C$\Databases\test.fdb';
顺便说一句,我已经尝试了几乎所有其他设置数据库字符串部分的可能性。
【问题讨论】:
-
请说明您在 Delphi 中的连接方式。了解您在 Delphi 中的连接方式可能会给我们一些线索,您需要在 C# 中做什么。但是,默认情况下,Firebird 服务器不允许连接到远程数据库,因为这会损坏数据库。数据库应与 Firebird 服务器进程位于同一主机上。更不用说能够访问 C$ 共享是一个很大的安全风险。简而言之,您根本不应该这样做。
-
@MarkRotteveel 我已经用 Delphi 中的示例连接字符串更新了我的问题
-
如果从
Database属性中删除localhost/3050:会发生什么。您已经通过DataSource和Port指定了这些。据我所知,Firebird ado.net 用于解析该条目样式的格式需要正常的 Windows 路径,因此它将整个值视为数据库名称,而不是主机、端口、数据库名称。跨度> -
@MarkRotteveel 也试过这个,结果是一样的。