我是 dbexpress 的新手,我不知道如何在运行时为 SQL 主机名设置 TSQLConnection 参数。当我在客户端系统上安装程序时,TSQLConnectionHost 仍在从我在开发期间输入的开发系统中读取主机。
问问题
4630 次
3 回答
2
TSQLConnection.Params
是 type TStrings
,这意味着它包含一组String
项目。在 TSQLConnection 的情况下,Params 拥有一组Name=Value
对,其中Name
是参数名称,Value
是参数值。要读取特定参数的值,请使用:
var
s: String;
...
s := SQLConnection1.Params.Values['ParamName'];
要将值分配给特定参数,请使用:
SQLConnection1.Params.Values['ParamName'] := 'NewValue';
(用实际参数名称替换“ParamName”,用实际新值替换“NewValue”。)
于 2011-12-17T22:14:05.810 回答
0
几年前,当我开始使用 dbExpress 进行开发时,我遇到了这个问题。在我的开发机器上,数据库位于 X 位置,而生产机器的数据库位于 Y 位置。我解决此问题的方法是将数据库的物理位置存储在注册表中(通过我编写的一个小型实用程序)然后使用以下代码加载正确的值。该位置可以存储在 INI 文件中,这需要对我的代码稍作改动,但这部分不太重要。
procedure TDm.SQLConnection1BeforeConnect(Sender: TObject);
var
dir: string;
begin
with TRegIniFile.create (regpath) do // this is where I get the physical value
begin
dir:= ReadString ('firebird', progname, '');
free
end;
with sqlconnection1 do
begin
close;
params.values['database']:= dir;
end;
end;
于 2011-12-18T07:02:47.303 回答
0
出现问题的原因是您在分发应用程序之前没有断开 SQLConnection 和所有数据集。要做的事情 a) 确保所有组件均未连接。b) 将 SQLConnection 的参数设置为空白。c)当您的应用程序启动时,从 ini 文件中读取所需的连接参数,并用这些填充 SQLConnection。d)然后连接,你会没事的!问候克里斯
于 2012-03-07T16:22:11.707 回答