看了公司的一段代码我直接崩溃掉了。我想死.....你们怎么看?   if query1.active=true then query1.close;
   query1.sql.clear;
   query1.sql.add('select * from zy_dxsfls where sfry=:czy');
   query1.parambyname('czy').asstring:=s_yhmc;
   query1.open;
  if query1.recordcount>0 then
    begin
     if query1.active then query1.close;
     query1.sql.clear;
     query1.sql.add('delete zy_dxsfls where sfry=:czy');
     query1.parambyname('czy').asstring:=s_yhmc;
     query1.ExecSQL;
     if query1.active then query1.close;
     query1.sql.clear;
     query1.sql.add('select * from zy_dxsfls where sfry=:czy');
     query1.parambyname('czy').asstring:=s_yhmc;
     query1.open;
    end;
查询完之后判断有没有值,然后在删除掉,然后再查询掉?
为什么不直接在删除的地方做个判断呢?
求指教~~

解决方案 »

  1.   

    ExecSQL有个返回值,大于0则表示执行成功,=0则表示没有结果集受影响。
      

  2.   

    这个公司的代码,给医院做的管理系统。一个数据库大概有快100多张表。表和字段都没有文档。代码里面没有注释,重复的代码用一次写一次,整段代码里面没有过程,没有函数。
    代码写的坑爹。我真心的崩溃了....我看了几天代码,我都快吐血了,救我...
    真心想cnmglb...
      

  3.   

    呵呵,估计这个代码也是被改了N次才出现这个情况的。
    猜测目的应该是,显示和操作用的是同一个query1,所以删除了要查询一次,以便把结果展示出来,不查询被删除的记录会任然存在
      

  4.   

    啥也不说了,还是看代码吧。
    我以前做vc的,现在到了一个小公司。要做delphi.
    因为刚来的原因吧。项目经理问我delphi感觉如何?
    我说为什么代码里面这么多重复的代码。我说如果有时间的话这个要好好的优化一下。
    他说:你现在的任务就是能修改代码,其他的不是你关心的事情。
    我就笑笑说:好的。
      

  5.   

    个人觉得delphi这几年唯一留下的就是封装了一些常用的函数