关于第二个问题,可使用TDataBase构件解决,在它的Connected设为true之前设置其Params参数,然后连接即可,也就是动态创建别名.
举个例子:
with Database1 do
begin
params.values['databasename']:='sss';
params.values['path']:='c:\test';
....
connected:= true;
end;
我想对于问题一,可对所使用的对象变量进行测试,如果已存在,则此变量一定不是NIL,否则需要创建对象。这里需要注意,初始化时变量应赋为NIL,在FREE以后,也要把变量赋为NIL。否则判断会出错。
动态加入连接可用ADDALIAS来完成。可在DELPHI中找TSESSION说明。
下面是摘自DELPHI中的例子。
var
MyList: TStringList;
begin
MyList := TStringList.Create;
try
with MyList do
begin
Add('SERVER NAME=IB_SERVER:/PATH/DATABASE.GDB');
Add('USER NAME=MYNAME');
end;
Session1.AddAlias('NewIBAlias', 'INTRBASE', MyList);
finally
MyList.Free;
end;
end;