我是dbexpress的新手,我不知道如何在运行时为SQL Host name设置TSQLConnection参数。当我在客户端系统上安装我的程序时,TSQLConnectionHost仍然从我在开发期间进入的开发系统中读取主机。
发布于 2011-12-18 06:14:06
TSQLConnection.Params的类型为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-18 15:02:47
几年前,当我开始使用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;发布于 2012-03-08 00:22:12
出现问题的原因是在分发应用程序之前没有断开SQLConnection和所有数据集的连接。要做的事情a)确保所有组件都没有连接。b)将SQLConnection的参数设置为空白。c)启动应用程序时,从ini文件中读取所需的连接参数,并用这些参数填充SQLConnection。d)然后连接,你就会很好!致敬Chris
https://stackoverflow.com/questions/8548099
复制相似问题