在一个button里写了一些代码,目的是更改数据库的内容。可是在实际的运行中,有的机器在该button点击后长时间不响应,导致更改内容没有提交。实在不知道是什么原因,还望高手相助。
  代码具体如下
 procedure TfrmComIn.BitBtn2Click(Sender: TObject);
var
Qry,QryE:TADOQuery;
sql,temp:string;
i:integer;begin
    Qry := TADOQuery.Create(nil);
    Qry.Connection := frmmain.MainDatabase;
  try
    sql:='SELECT * FROM COMUNION_HDR WHERE COMID = '''+trim(edComID.Text)+''' ';
    Qry.close;
    Qry.sql.Clear;
    Qry.sql.add(sql);
    Qry.open;    if Qry.RecordCount = 0 then
    begin ...    end
    else  if id <> '' then
    begin
    if Application.MessageBox('已有该会员编号,是否修改',TIT005,mb_OKCANCEL+MB_ICONINFORMATION)=mrok then
      //if Application.MessageBox(MSG015,TIT015,mb_OKCANCEL+MB_ICONINFORMATION)=mrok then
    begin
    sql:='UPDATE COMUNION_HDR SET COMID = '''+trim(edComID.Text)+''', COMIDHEAD = '''+copy(trim(edComID.Text),1,1)
    +''',COMIDBODY = '''+copy(trim(edComID.Text),2,4)+''',COMNAME = '''+trim(edComName.Text)
    +''', WORKNAME = '''+trim(cobUnionWork.text)+''',COMINLOW = '''+trim(cobOwnerShip.text)
    +''', BUSINESS = '''+trim(cobBusiness.Text)+''',DISTRICT = '''+trim(cobDistrict.text)
    +''', ADDRESS = '''+trim(edAddress.text)+''',ZIP = '''+trim(edZip.text)+''',TEL = '''+trim(edTel.text)
    +''', FAX = '''+trim(edFax.text)+''',NETADDRESS = '''+trim(edEMail.text)+''',com1 = '''+str1+''',com2 = '''
    +str2+''',com3 = '''+str3+''',com4 = '''+str4+''' WHERE '
    +'COMID = '''+ID+''' ';
    Qry.close;
    Qry.sql.Clear;
    Qry.sql.Add(sql);
    Qry.ExecSQL;    if trim(edCongressname.text) <> '' then
    begin//1
    Qry.close;
    Qry.sql.clear;
    Qry.sql.Add('SELECT * FROM COM_CONGRESS WHERE COMID = '''+ID+''' ');
    QRY.OPEN;    IF QRY.RecordCount = 0 THEN
    BEGIN
    if ckbConBorn.Checked then
  sql:='INSERT INTO COM_CONGRESS (COMID,CONGRESSNAME,MALE,BORN,'
    +'COMWORK,SOCIEWORK,TEL,FAX,EMAIL,UNIONWORK,OPER,EXTRA) VALUES ('''+trim(edComID.Text)
    +''','''+trim(edCongressName.Text)+''','''+trim(cobMale.text)+''','''+formatdatetime('YYYY-MM-DD',dtpCongressBorn.DateTime)
    +''','''+trim(cobComWork.Text)+''','''+trim(cobSocieWork.text)+''','''+trim(edComTel.text)
    +''','''+trim(edComFax.text)+''','''+trim(edComEMail.text)+''','''+trim(cobComUnionWork.text)+''','''','''+formatdatetime('YYYY-MM-DD',dtpCongressBorn.DateTime)+''')'
    else
  sql:='INSERT INTO COM_CONGRESS (COMID,CONGRESSNAME,MALE,'
    +'COMWORK,SOCIEWORK,TEL,FAX,EMAIL,UNIONWORK,OPER) VALUES ('''+trim(edComID.Text)
    +''','''+trim(edCongressName.Text)+''','''+trim(cobMale.text)+''','''
    +trim(cobComWork.Text)+''','''+trim(cobSocieWork.text)+''','''+trim(edComTel.text)
    +''','''+trim(edComFax.text)+''','''+trim(edComEMail.text)+''','''+trim(cobComUnionWork.text)+''','''')';
    END
    ELSE
    BEGIN
    if copy(id,1,1) <> 'P' then
    begin
    if ckbConBorn.Checked then
    sql:='UPDATE COM_CONGRESS SET CONGRESSNAME = '''+trim(edCongressName.Text)+''',MALE='''
    +trim(cobMale.text)+''',BORN = '''+formatdatetime('YYYY-MM-DD',dtpCongressBorn.DateTime)
    +''',COMWORK = '''+trim(cobComWork.Text)+''',SOCIEWORK = '''+trim(cobSocieWork.text)
    +''',EXTRA = '''+formatdatetime('YYYY-MM-DD',dtpCongressBorn.DateTime)
    +''',UNIONWORK = '''+trim(cobComUnionWork.Text)+''',TEL='''+trim(edComTel.text)+''',FAX = '''+trim(edComFax.text)+''',EMAIL='''+trim(edComEMail.text)+''' WHERE '
    +'COMID = '''+ID+''' AND (UNIONWORK IS NULL OR UNIONWORK = '''') '
    else
    sql:='UPDATE COM_CONGRESS SET CONGRESSNAME = '''+trim(edCongressName.Text)+''',MALE='''
    +trim(cobMale.text)+''',BORN = NULL,COMWORK = '''+trim(cobComWork.Text)+''',SOCIEWORK = '''+trim(cobSocieWork.text)
    +''',UNIONWORK = '''+trim(cobComUnionWork.Text)+''',TEL='''+trim(edComTel.text)+''',FAX = '''+trim(edComFax.text)+''',EMAIL='''+trim(edComEMail.text)+''' WHERE '
    +'COMID = '''+ID+''' AND (UNIONWORK IS NULL OR UNIONWORK = '''') ';
    end
    else
    begin
    if ckbConBorn.Checked then
    sql:='UPDATE COM_CONGRESS SET CONGRESSNAME = '''+trim(edCongressName.Text)+''',MALE='''
    +trim(cobMale.text)+''',BORN = '''+formatdatetime('YYYY-MM-DD',dtpCongressBorn.DateTime)
    +''',COMWORK = '''+trim(cobComWork.Text)+''',SOCIEWORK = '''+trim(cobSocieWork.text)
    +''',EXTRA = '''+formatdatetime('YYYY-MM-DD',dtpCongressBorn.DateTime)
    +''',UNIONWORK = '''+trim(cobComUnionWork.Text)+''',TEL='''+trim(edComTel.text)+''',FAX = '''+trim(edComFax.text)+''',EMAIL='''+trim(edComEMail.text)+''' WHERE '
    +'COMID = '''+ID+'''  '
    else
    sql:='UPDATE COM_CONGRESS SET CONGRESSNAME = '''+trim(edCongressName.Text)+''',MALE='''
    +trim(cobMale.text)+''',BORN = NULL,COMWORK = '''+trim(cobComWork.Text)+''',SOCIEWORK = '''+trim(cobSocieWork.text)
    +''',UNIONWORK = '''+trim(cobComUnionWork.Text)+''',TEL='''+trim(edComTel.text)+''',FAX = '''+trim(edComFax.text)+''',EMAIL='''+trim(edComEMail.text)+''' WHERE '
    +'COMID = '''+ID+'''  ';
    end;     //exchanged havebeing congressmessage;
    END;    Qry.close;
    Qry.sql.Clear;
    Qry.sql.Add(sql);
    Qry.ExecSQL;
    end;//1  if length(posmessager) > 0 then
  begin
  sql:='DELETE FROM COM_MESSAGER WHERE COMID = '''+ID+''' ';
    Qry.close;
    Qry.sql.Clear;
    Qry.sql.Add(sql);
    Qry.ExecSQL;
   for i:=0 to length(posmessager)-1 do
   begin
   if posmessager[i].id = 0 then
   begin
   if formatdatetime('YYYY-MM-DD',posmessager[i].Born) <> '1899-12-30' then
  sql:='INSERT INTO COM_MESSAGER (COMID,MESSAGERNAME,MALE,BORN,'
    +'COMWORK,TEL,FAX,EMAIL,OPER,EXTRA) VALUES ('''+trim(edComID.Text)
    +''','''+posmessager[i].Name+''','''+posmessager[i].Male+''','''+formatdatetime('YYYY-MM-DD',posmessager[i].Born)
    +''','''+posmessager[i].ComWork+''','''+posmessager[i].Tel
    +''','''+posmessager[i].Fax+''','''+posmessager[i].EMail+''','''','''+formatdatetime('YYYY-MM-DD',posmessager[i].Born)+''')'
    else
   sql:='INSERT INTO COM_MESSAGER (COMID,MESSAGERNAME,MALE,'
    +'COMWORK,TEL,FAX,EMAIL,OPER) VALUES ('''+trim(edComID.Text)
    +''','''+posmessager[i].Name+''','''+posmessager[i].Male
    +''','''+posmessager[i].ComWork+''','''+posmessager[i].Tel
    +''','''+posmessager[i].Fax+''','''+posmessager[i].EMail+''','''')';
    Qry.close;
    Qry.sql.Clear;
    Qry.sql.Add(sql);
    Qry.ExecSQL;
    end;
   end;
  end;
   
    略更新其他数据部分,也是先删除数据在根据相关记录数组一条条加进去
  
    Application.MessageBox(MSG006,TIT006,mb_OK);
    end    else
    exit;
    end
    else
    begin
    Application.MessageBox('已有该会员编号','无法操作',mb_ok);
    exit;
    end;  except
  end;end;