当尝试与 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;
如您所见,所有属性都完全相同。
遵循错误消息:
任何有关此问题的帮助将不胜感激。
我在使用 Delphi 11 Developer Edition 时遇到了这个问题。我可以在 IDE 外部进行连接,但从 IDE 运行时出现错误“数据库不可用”。我通过从“工具”|“删除”IDE Interbase 环境变量 INTERBASE、IB_PROTOCOL 和 Interbase 可再发行变量(我忘记了名字)解决了这个问题。 IDE |环境变量 - 用户系统覆盖。我不知道他们是如何到达那里的,但他们让 IDE 混淆了 Interbase 服务器的位置。 您
必须进行更改后重新启动 IDE! 大卫