我是用ADOQuery1与DaTaSource相连,让数据显示在DBGird显示,用ADOQuery2来更新数据。
在DBGird中显示的数据没有问题,现在是用ADOQuery2来更新数据,到  ADOQuery1.Close; 就报错了,哪位大侠帮帮忙看看是哪里出问题了procedure TForm1.Button2Click(Sender: TObject);
var   location:string;
begin  location:=edit1.Text;      
  with ADOQuery2 do
  begin
  ADOQuery2.Close;
  ADOQuery2.sql.Clear;
  ADOQuery2.SQL.Add('update nike');     
  ADOQuery2.SQL.Add(',name='''+edit1.Text+'''');
  ADOQuery2.SQL.Add(',age='''+edit2.Text+'''');
  ADOQuery2.SQL.Add(',mom='''+edit2.Text+'''');
  ADOQuery2.SQL.Add(',dad='''+edit2.Text+'''');
  ExecSql;
  end;
  ADOQuery1.Close;
  ADOQuery1.Open;                 
  ADOQuery1.Locate('name',Location,[loPartialKey]); 
  edit1.Enabled:=false;
  edit2.Enabled:=false;
  edit3.Enabled:=false;
  edit4.Enabled:=false;
  edit5.Enabled:=false;
  edit6.Enabled:=true;
  button2.Enabled:=false;
  button3.Enabled:=false;
  button1.Enabled:=false;
  button4.Enabled:=true;
  button5.Enabled:=true;
  messagebox(Application.Handle,'修改成功','提醒',MB_OK OR MB_ICONINFORMATION);end;

解决方案 »

  1.   


    procedure TForm1.Button2Click(Sender: TObject); 
    var  location:string; 
    begin   location:=edit1.Text;      
      with ADOQuery2 do 
      begin 
      ADOQuery2.Close; 
      ADOQuery2.sql.Clear; 
      ADOQuery2.SQL.Add('update nike');    
      ADOQuery2.SQL.Add(',name='''+edit1.Text+''''); 
      ADOQuery2.SQL.Add(',age='''+edit2.Text+''''); 
      ADOQuery2.SQL.Add(',mom='''+edit2.Text+''''); 
      ADOQuery2.SQL.Add(',dad='''+edit2.Text+''''); 
      ExecSql; 
      end;
    with ADOQuery2 do
    begin  
      ADOQuery1.Close; 
      ADOQuery1.Open;                
      ADOQuery1.Locate('name',Location,[loPartialKey]);
    end; 
      edit1.Enabled:=false; 
      edit2.Enabled:=false; 
      edit3.Enabled:=false; 
      edit4.Enabled:=false; 
      edit5.Enabled:=false; 
      edit6.Enabled:=true; 
      button2.Enabled:=false; 
      button3.Enabled:=false; 
      button1.Enabled:=false; 
      button4.Enabled:=true; 
      button5.Enabled:=true; 
      messagebox(Application.Handle,'修改成功','提醒',MB_OK OR MB_ICONINFORMATION); end;
      

  2.   


    procedure TForm1.Button2Click(Sender: TObject); 
    var  location:string; 
    begin   location:=edit1.Text;      
      with ADOQuery2 do 
      begin 
      ADOQuery2.Close; 
      ADOQuery2.sql.Clear; 
      ADOQuery2.SQL.Add('update nike');    
      ADOQuery2.SQL.Add(',name='''+edit1.Text+''''); 
      ADOQuery2.SQL.Add(',age='''+edit2.Text+''''); 
      ADOQuery2.SQL.Add(',mom='''+edit2.Text+''''); 
      ADOQuery2.SQL.Add(',dad='''+edit2.Text+''''); 
      ExecSql; 
      end;
    with ADOQuery1 do
    begin  
      ADOQuery1.Close; 
      ADOQuery1.Open;                
      ADOQuery1.Locate('name',Location,[loPartialKey]);
    end; 
      edit1.Enabled:=false; 
      edit2.Enabled:=false; 
      edit3.Enabled:=false; 
      edit4.Enabled:=false; 
      edit5.Enabled:=false; 
      edit6.Enabled:=true; 
      button2.Enabled:=false; 
      button3.Enabled:=false; 
      button1.Enabled:=false; 
      button4.Enabled:=true; 
      button5.Enabled:=true; 
      messagebox(Application.Handle,'修改成功','提醒',MB_OK OR MB_ICONINFORMATION); end;
      

  3.   

    大侠,还是在报错
    project project.exe raised excepyion class EOleException with mwssage'第2行:','附近有语法错误。'.
      

  4.   

    ADOQuery2.Close; 
    ADOQuery2.sql.Clear; 
    ADOQuery2.SQL.Add('update nike');    
    ADOQuery2.SQL.Add(',name='''+edit1.Text+''''); 
    ADOQuery2.SQL.Add(',age='''+edit2.Text+''''); 
    ADOQuery2.SQL.Add(',mom='''+edit2.Text+''''); 
    ADOQuery2.SQL.Add(',dad='''+edit2.Text+''''); 
    ExecSql; 'update nike set name = ' + QuotedStr(edit1.Text) + ', age = ' + ...
    是 SQL 语法错误哦
      

  5.   

     ADOQuery1.Close; 
    指向这里,一般错误的都是上一个代码。
    类似','附近有语法错误。'.之类错误都是sql语法错误
    直接查sql语句。
      

  6.   

      with ADOQuery2 do 
      begin 
      ADOQuery2.Close; 
      ADOQuery2.sql.Clear; 
      ADOQuery2.SQL.Add('update nike SET');    
      ADOQuery2.SQL.Add(',name='''+edit1.Text+''''); 
      ADOQuery2.SQL.Add(',age='''+edit2.Text+''''); 
      ADOQuery2.SQL.Add(',mom='''+edit2.Text+''''); 
      ADOQuery2.SQL.Add(',dad='''+edit2.Text+''''); 
      ADOQuery2.SQL.Add(' where ???'); 
      ExecSql; 
      end; 
      

  7.   

    ADOQuery2.SQL.Add(',name='''+edit1.Text+''''); 
    'nam'前的','应该删除.
      

  8.   

    好好的一条SQL被你写这样var
       strsql:string;
    begin
       strsql:='UPDATE T SET name='''+edit1.text+''',age=''+edit2.text+'''; 
       adoquery1.close;
       adoquery1.sql.clear;
       adoquery1.sql.add(strsql);
       adoquery1.execsql;
    end;