尝试连接时 FireDAC 数据库不可用

问题描述 投票:0回答:1

当尝试与 Interbase 服务器即时建立连接(名为

MyConnection
)时,我收到消息
unavailable database

相反,如果我将预先声明的

TFDConnection
(名为
FDConnection1
)分配给连接变量,它就可以正常工作。

我还将

FDConnection1
的所有属性分配给
MyConnection
试图使它们相同。

我仍然收到相同的错误消息。

因此,我假设存在一些我在研究中找不到的未知扭曲,当将先前声明的

TFDConnection
分配给连接变量时成功建立了连接。

遵循代码片段:

工作代码

...
implementation
...
var MyConnection : TFDConnection;
...
procedure MakeConnection;
begin
  MyConnection := dmConn.FDConnection1; // resides in a data module
  MyConnection.Connected := True; // works fine
  {dmConn.FDConnection1 properties
     Name        = FDConnection1
     DriverName  = IB
     LoginPrompt = False
     Params 
       Database = C:\MyDatabase
       DriverId = IB
       Password = masterkey
       UserName = SYSDBA
       InstanceName = instance2 // name of the server instance
       OsAuthent    = No
       Port         = 3050
  }
End;

无法运行代码

...
implementation
...
var MyConnection : TFDConnection;
...
procedure MakeConnection;
begin
  MYConnection := TFDconnection.Create (Self);
  with MyConnection do begin
       Name        := 'MyConnection1';
       DriverName  := 'IB';
       LoginPrompt :=  False;
       with Params do begin
            Clear;
            Database := 'C:\MyDatabase';
            DriverId := 'IB';
            Password := 'masterkey';
            UserName := 'SYSDBA';
            Add ('InstanceName = instance2'); // name of the server instance        Add ('OsAuthent    = No');
            Add ('Port         = 3050');
       end;
       Connected := True; // error message at this point
   end;
end;

如您所见,所有属性都完全相同。

遵循错误消息:

enter image description here

任何有关此问题的帮助将不胜感激。

database connection firedac interbase
1个回答
0
投票

我在使用 Delphi 11 Developer Edition 时遇到了这个问题。我可以在 IDE 外部进行连接,但从 IDE 运行时出现错误“数据库不可用”。我通过从“工具”|“删除”IDE Interbase 环境变量 INTERBASE、IB_PROTOCOL 和 Interbase 可再发行变量(我忘记了名字)解决了这个问题。 IDE |环境变量 - 用户系统覆盖。我不知道他们是如何到达那里的,但他们让 IDE 混淆了 Interbase 服务器的位置。

必须

进行更改后重新启动 IDE! 大卫

© www.soinside.com 2019 - 2024. All rights reserved.