try finally end 问题

kckcxy 2017-05-16 04:47:21
代码如下:

try
Screen.Cursor := crHourGlass;
try
OpenADOQuery(DM.QryTmp, 'select rq from tpJiHua where rq = ''' + Trim(ExcelApp.Cells[2,1].Value) + '''');
if DM.QryTmp.IsEmpty then
begin
for i := 2 to ExcelApp.ActiveSheet.UsedRange.Rows.Count do
begin
rq := Trim(ExcelApp.Cells[i,1].Value);
pf:= Trim(ExcelApp.Cells[i,2].Value);
sl:= VarToStr(ExcelApp.Cells[i,3].Value);
with DM.QryTmp do
begin
Close;
SQL.Clear;
SQL.Add('Insert into tpJiHua(rq, pf, zljh)');
SQL.Add(' values(:rq, :pf, :zljh)');
Parameters.parambyname('rq').Value := rq;
Parameters.parambyname('pf').Value := pf;
Parameters.parambyname('zljh').Value := sl;
ExecSQL;
OkNum := OkNum + 1; //更新成功数加1
end;
end;
end else begin
ErrorDlg('系统已有月份为:'+ FormatDatetime('yyyy-mm',DM.QryTmp.FieldByName('rq').AsDateTime) +' 的计划。');
exit;
end;
InfoDlg('系统提示您:系统共成功导入' + IntToStr(OkNum) + '条数据');
except
on E: Exception do
begin
ErrorDlg('系统提示您,数据导入失败,原因为:' + e.Message);
end;
end;
finally
ExcelApp.ActiveWorkBook.Close;
ExcelApp.Quit;
ExcelApp := Unassigned;
Screen.Cursor := crDefault;
end;

以上代码导入数据,但是代码执行顺序好像有问题,ExcelApp好像并没有释放,鼠标形状也还是忙碌状态,finally后面的代码是不是不执行啊?
...全文
129 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
jskscxy 2017-05-17
  • 打赏
  • 举报
回复
ExcelApp.ActiveWorkBook.Close; 去掉这个试试

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧