2011-07-03 64 views
0

我制作了一个访问网络环境中的Firebird数据库的程序。如何通过两台或多台计算机的网络访问interbase/firebird db

我通过网络在网络的两个不同点上正常访问数据库。

但是,如果我打开两个程序同时此异常被抛出第二方案,该方案试图连接到DB:

“您的用户名和密码不definied”

如何访问firebird数据库同时有两个连接?

+1

“您的用户名和密码未定义”不表示对同时连接有限制。它表明一个客户端使用不正确的firebird登录凭证。你确定两个程序使用相同的登录凭证和连接细节吗? – Sam

+0

您是否尝试创建第二个帐户并使用其他登录名?虽然我非常确定Interbase默认允许多个用户使用同一个帐户登录,但您可以轻松创建第二个帐户来验证这是发生了什么。 –

+2

你用什么组件连接数据库?您需要使用TCP连接,但显然细节取决于实际的组件集。例如,Sam的答案虽然正确,但如果使用Interbase Express,则没有用,因为IBX有一个具有“DatabaseName”属性的“TIbDatabase”组件(即:您没有“连接”组件)。史蒂夫的方法可能也是正确的,但同样,IBX没有“服务器”属性,您可以在数据库名称中指定该属性。此外,您的错误消息建议您在不手动提供用户名和密码的情况下取消登录对话框。 –

回答

0

确保Firebird数据库托管在运行Firebird服务器的计算机上。

即在有数据库的计算机上安装Firebird服务器。

然后从安装了应用程序的客户端PC上,确保您通过连接到Firebird服务器来访问数据库。这意味着无论您的Delphi应用程序使用哪个组件连接到数据库,都需要将“服务器”属性设置为数据库服务器计算机的主机名。

完成此操作后,您的应用程序将向Firebird数据库服务器发出请求,该服务器知道如何处理连接并处理SQL请求并返回结果。

0

大多数数据库连接组件应该让你的IP地址或主机名,这样,例如先于数据库路径

MyConnection.Database := '127.0.0.1:C:\Databases\testdb.fdb'; 

显然确保两个你的程序指向相同的IP地址或主机名,并确保他们使用的登录凭证在Firebird服务器上定义。

所有Firebird服务器安装(嵌入式除外)可以默认处理多个连接(即使使用相同的用户),您不必担心这一点。只要确保客户端程序正在使用它们试图连接到的服务器上的输入(即db网络路径和firebird服务器登录凭证)。您可以直接使用SYSDBA,直到获得控制权,然后开始考虑为您的客户端应用程序创建唯一的登录名以供使用。

2

这可能是由于使用firebird的嵌入式版本造成的,它只允许1个连接。看看你安装的文件名。

如果是这样,那么问题卸载并安装CLASIC或超级服务器版本而不是

+0

注意上面的答案并不是最新的,根据http://www.firebirdsql.org/manual/qsg25-classic-or-super.html提供的firebird版本2.5“Windows Embedded现在包含SuperClassic而不是SuperServer引擎。文件锁是共享的,因此一个或多个嵌入式服务器和常规Classic或SuperClassic服务器可以同时访问数据库。“ – dendini

0

TIBDatabase组件,你必须填写的Params属性搭配:

user_name=sysdba 
password=masterkey 

在每一个火鸟安装局域网中的计算机必须设置为此默认参数。有问题的计算机必须具有不同的访问凭据。

您必须卸载火鸟并重新安装使用服务和超级服务器选项的最新版本,并选中“使用GDI32.DLL复古......”

告诉我,如果为你解决。

相关问题