2

我使用 firebird db 和 Delphi XE2 开发了一个客户端/服务器应用程序。问题是客户端上的 TSQLConnection 组件自动将 HostName 属性设置为 localhost。我想知道,我如何编写代码,让用户在客户端第一次启动时可以选择设置主机名。

我将 TSQLConnection 组件放在客户端的数据模块上。

在主窗体上,我为用户放置了一个选项来设置 HostName 属性,并使用以下代码分配用户在 TextBox 中输入的值:

Database.SQLServer.Params.Add('HostName='+edtHostName.Text);

但似乎一旦程序启动 TSQLConnection 组件将主机名设置为 localhost,我无法将其设置为用户主机名。谁能帮帮我吗

4

2 回答 2

6

主机名不是 dbexpress firebird 连接的有效属性,您必须使用该DataBase属性来指定使用这些格式之一的主机。

1) 指定端口、主机和数据库

  server_host/port:/path/to/database.fdb

2)指定主机和数据库

  server_host:/path/to/database.fdb

3) 仅指定数据库

/path/to/database.fdb

所以使用 DbExpress 这看起来像

  SQLConnection1.Params.Values['Database']:='192.168.1.125/3050:C:\Program Files (x86)\Firebird\Firebird_2_0\examples\empbuild\EMPLOYEE.FDB';
于 2012-07-03T17:41:06.483 回答
0

检查embarcadero Wiki有时很有用

指定连接参数

Params 属性是列出名称-值对的字符串列表。每对具有 Name=Value 的形式,其中 Name 是参数的名称,Value 是您要分配的值。您需要的特定参数取决于您使用的数据库服务器。但是,所有服务器都需要一个特定参数 Database。它的值取决于您使用的服务器。例如,对于 InterBase,Database 是 .gdb 文件的名称,对于 ORACLE,它是 TNSNames.ora 中的条目,而对于 DB2,它是客户端节点名称。其他典型参数包括 User_Name(登录时使用的名称)、Password(User_Name 的密码)、HostName(服务器所在的机器名或 IP 地址)、和 TransIsolation(您引入的事务了解其他事务所做更改的程度)。当您指定驱动程序名称时,Params 属性会预加载该驱动程序类型所需的所有参数,并初始化为默认值。您还可以根据应用程序的需要将其他连接参数添加到 Params 字符串列表中。例如,要使用 MSSQL 驱动程序为 SQL 连接提供多活动结果集 (MARS) 支持,您必须添加一个名为 Mars_Connection 的键并将其值设置为 True。因为 Params 是一个字符串列表,所以在设计时,您可以在 Object Inspector 中双击 Params 属性,使用字符串列表编辑器编辑参数。在运行时,使用 Params.Values 属性将值分配给各个参数。

于 2012-07-03T17:37:36.050 回答