下面这段代码执行不了,我单步调试了一下,当执行到savedialog.Execute;这句时就进入死循环了,请帮忙看看
procedure Tf_main.N84Click(Sender: TObject);
var database:string;
savedialog:Tsavedialog;
begin
with f_data.bkup do
begin
close;
sql.Clear ;
sql.Add('select dbname from dbnameexchange');
sql.Add('where name='+''''+trim(statusbar1.Panels[1].text)+'''');
open;
end;
database:=f_data.bkup.fieldbyname('dbname').AsString ; //求出当前数据库的名字,赋给变量database
savedialog:=Tsavedialog.Create(nil); //创建savedialog对象
savedialog.Execute;
savedialog.FileName:=database;
with f_data.ADOQuery3 do
begin
close;
sql.Clear ;
sql.Add('BACKUP DATABASE '+database+' TO DISK = ' + QuotedStr(savedialog.FileName + '.BAK'));
execsql;
end;
end
procedure Tf_main.N84Click(Sender: TObject);
var database:string;
savedialog:Tsavedialog;
begin
with f_data.bkup do
begin
close;
sql.Clear ;
sql.Add('select dbname from dbnameexchange');
sql.Add('where name='+''''+trim(statusbar1.Panels[1].text)+'''');
open;
end;
database:=f_data.bkup.fieldbyname('dbname').AsString ; //求出当前数据库的名字,赋给变量database
savedialog:=Tsavedialog.Create(nil); //创建savedialog对象
savedialog.Execute;
savedialog.FileName:=database;
with f_data.ADOQuery3 do
begin
close;
sql.Clear ;
sql.Add('BACKUP DATABASE '+database+' TO DISK = ' + QuotedStr(savedialog.FileName + '.BAK'));
execsql;
end;
end
解决方案 »
- 我是delphi初学者,有个问题想问问!
- 线程中使用SendMessage发送消息怎么没效果呢?
- 菜鸟求救?????reportmachine如何在intraweb5.0.43做报表,还有个如和装intraweb7.0.19 在哪下?
- 使用cxGrid控件的应用程序中,动态析构TcxGridDBTableView的对象问题?!
- 那里有delphi70的http方式的下载??我这里ftp被禁止了。
- 怎样做到用 /install 安装服务(Service) 不要显示安装成功的对话框
- 请问哪里有D6的Update2下载啊?
- 再问:ExpressQuantumPack什么地方可下????
- 请问在多表关联查询中,在追加提交时如何只追加其中的一个表?
- Delphi中使用*.chm帮助
- 关于字符串列表排序的困惑!
- 有没有这样一种控件,可以直接连接数据库,但操作又是类似于EXCEL的?
savedialog:=Tsavedialog.Create(nil);
savedialog.Execute;
savedialog.FileName:=database; {你这句在这里没什么用,应该放在前面}{修改如下:}
savedialog:=Tsavedialog.Create(nil);
savedialog.FileName:=database;
if savedialog.Execute then {须要判断是否按下确定按扭}
....
使用的时候,下面的是必要的。
if savedialog.Execute then
如果以nil身份创建了,最后别忘了free
最好使用
try
SaveDialog := TSaveDialog.Create(nil);
if SaveDialog.Execute then
...
finally
SaveDialog.free;
end;