想在一个增加系统帐户程序里面用同一个TADOQuery控件完成查找帐户和增加帐户两个操作,程序如下:
with query_data do
begin
   close;
   sql.Clear ;
   sql.Text :='select * from systemuser where id="'+uppercase(E_id.Text)+'"';
   try
      open;
   except
      messagedlg(Errormsg0001+'0001',mtError,[mbok],0);
      close;
      self.Close ;
   end;
   if RecordCount > 0 then   //工号已存在
   begin
      messagedlg(Errormsg0003+'0004',mtError,[mbok],0);
      E_id.SetFocus ;
      close;
      exit;
   end
   else     //工号不存在则增加
   begin
      close;
      sql.Clear ;
      sql.Text :='insert into systemuser ......;
      try
         execsql;
      except
         messagedlg(Errormsg0004+'0005',mtError,[mbok],0);
         close;
         self.Close ;
      end;
   end;
   messagedlg(Infmsg0001,mtInformation,[mbok],0);
   close;
   self.Close ;
end;
可是系统执行到execsql程序提示内存非法访问。请教应该如何修正?