李颖的控件(50分)

  • 主题发起人 主题发起人 shiner
  • 开始时间 开始时间
S

shiner

Unregistered / Unconfirmed
GUEST, unregistred user!
我写了一个工资管理程序,用到李颖写得数据库备份控件,现在遇到如下
问题:
做安装程序,考虑到数据库别名的问题,我在主程序的TForm1.FormCreate
事件添加了如下代码:
With Session do
begin
ConfigMode:=cmSession;
try
AddStandardAlias('shiner',ExtractFilePath(ParamStr(0)),'PARADOX');
finally
Configmode:=cmAll;
end;
end;
这就要求主程序text.exe和数据库文件在一个目录下,所以安装后的目录为:
C:/Program Files/xyz
程序运行,执行备份,删除,回取均不行,且回取就死机。
在我自己得电脑上又可以,因为我的电脑上用database desktop创建了别名:
shiner。text.exe的存放目录为:c:/xyz 数据库目录为:c:/xyz/data。
主程序TForm1.FormCreate
事件删除了如下代码:
With Session do
begin
ConfigMode:=cmSession;
try
AddStandardAlias('shiner',ExtractFilePath(ParamStr(0)),'PARADOX');
finally
Configmode:=cmAll;
end;
end;
程序运行一切正常。
请问该怎样解决?
 
问题已转告李颖,答复如下:

=======================================================
看不懂你的意思
好象是说使用Alias导致TDBBackup行为不正常?
TDBBackup通过TDatabase来连接数据库,应该不会受Alias影响

建议你以后尽量不要使用Alias
而应该用TDatabase.Params来定义数据库参数
比如你上面的这段代码,改成这样:
FormCreate事件中:
with Database do
begin
DriverName := 'STANDARD';
Params.Clear;
Params.Add('Default Driver=PARADOX');
Params.Add(Format('Path=%s',[ExtractFilePath(Application.ExeName)]);
Open;
end;
=======================================================
 
接受答案了.
 

Similar threads

S
回复
0
查看
896
SUNSTONE的Delphi笔记
S
S
回复
0
查看
873
SUNSTONE的Delphi笔记
S
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部