adoquery1.SQL.Clear;
adoquery1.sql.add('update admin set pwd=password,department=un,purview=:pur,operater=:op,date=:lastdate where name=:username');
adoquery1.Parameters.Clear;
adoquery1.Parameters.AddParameter;
adoquery1.Parameters[0].Name:='password';
adoquery1.Parameters[0].DataType:=ftstring;
adoquery1.Parameters[0].Direction:=pdinput;
adoquery1.Parameters[0].Value:=edit2.Text;
adoquery1.Parameters.AddParameter;
adoquery1.Parameters[1].Name:='un';
adoquery1.Parameters[1].DataType:=ftstring;
adoquery1.Parameters[1].Direction:=pdinput;
adoquery1.Parameters[1].Value:=edit3.Text;
adoquery1.Parameters.AddParameter;
adoquery1.Parameters[2].Name:='pur';
adoquery1.Parameters[2].DataType:=ftstring;
adoquery1.Parameters[2].Direction:=pdinput;
adoquery1.Parameters[2].Value:=edit5.Text;
adoquery1.Parameters.AddParameter;
adoquery1.Parameters[3].Name:='op';
adoquery1.Parameters[3].DataType:=ftstring;
adoquery1.Parameters[3].Direction:=pdinput;
adoquery1.Parameters[3].Value:=edit4.Text;
adoquery1.Parameters.AddParameter;
adoquery1.Parameters[4].Name:='lastdate';
adoquery1.Parameters[4].DataType:=ftdatetime;
adoquery1.Parameters[4].Direction:=pdinput;
adoquery1.Parameters[4].Value:=strtodate(maskedit1.Text);
adoquery1.Parameters.AddParameter;
adoquery1.Parameters[5].Name:='username';
adoquery1.Parameters[5].DataType:=ftstring;
adoquery1.Parameters[5].Direction:=pdinput;
adoquery1.Parameters[5].Value:=edit1.Text;
adoquery1.ExecSQL;adoquery1.SQL.Clear;
adoquery1.SQL.Add('insert into admin(name,pwd,purview,department,operater,date)values(:username,:password,:pur,:op,:lastdate)');
adoquery1.Parameters.Clear;
      adoquery1.Parameters.AddParameter;
      adoquery1.Parameters[0].name:='username';
      adoquery1.Parameters[0].DataType:=ftstring;
      adoquery1.Parameters[0].Direction:=pdinput;
      adoquery1.Parameters[0].Value:=edit1.text;
      adoquery1.Parameters.AddParameter;
      adoquery1.Parameters[1].name:='password';
      adoquery1.Parameters[1].DataType:=ftstring;
      adoquery1.Parameters[1].Direction:=pdinput;
      adoquery1.Parameters[1].Value:=edit2.text;
      adoquery1.Parameters.AddParameter;
      adoquery1.Parameters[2].name:='pur';
      adoquery1.Parameters[2].DataType:=ftstring;
      adoquery1.Parameters[2].Direction:=pdinput;
      adoquery1.Parameters[2].Value:=edit5.text;
      adoquery1.Parameters.AddParameter;
      adoquery1.Parameters[3].name:='un';
      adoquery1.Parameters[3].DataType:=ftstring;
      adoquery1.Parameters[3].Direction:=pdinput;
      adoquery1.Parameters[3].Value:=edit3.Text;
      adoquery1.Parameters.AddParameter;
      adoquery1.Parameters[4].name:='operator';
      adoquery1.Parameters[4].DataType:=ftstring;
      adoquery1.Parameters[4].Direction:=pdinput;
      adoquery1.Parameters[4].Value:=edit4.text;
      adoquery1.Parameters.AddParameter;
      adoquery1.Parameters[5].name:='lastdate';
      adoquery1.Parameters[5].DataType:=ftdatetime;
      adoquery1.Parameters[5].Direction:=pdinput;
      adoquery1.Parameters[5].Value:=StrToDate(maskedit1.text);
      adoquery1.ExecSQL;

解决方案 »

  1.   

    with AdoQuery1 do
      begin
        Close;   
        SQL.Clear;
        SQL.Add('update admin set pwd=password,department=un,purview=:pur,operater=:op,date=:lastdate where name=:username');
        Parameters[0].value:=...;
        Parameters[1].value:=...;
        Parameters[2].value:=...;
        Parameters[3].value:=...;
        ExecSQL;
      end;
      

  2.   

    'update admin set pwd=password,department=un,purview=:pur,operater=:op,date=:lastdate where name=:username'改为:
    'update admin set pwd='''+password+''',department='''+un+''' ',
    purview=:pur,operater=:op,date=:lastdate where name=:username'
      

  3.   

    注意char和datetime类型的数据的值在sql语句中要用单引号括起来建议:
      with AdoQuery1 do
      begin
        Close;   
        SQL.Clear;
        SQL.Add(format('update admin set pwd=''%s'',department=''%s'',purview=''%s'',operater=''%s'',date=''%s'' where name=''%s''',[password,un,……]));
        ExecSQL;
      end;
      

  4.   

    adoquery1.sql.add('update admin set pwd=password,department=un,purview=:pur,operater=:op,date=:lastdate where name=:username');
    ====================
    这里的的password好象应当是:password吧,表示一个Parameter,以及un,否则的话,后面就不应当有这两个Parameter。
      

  5.   

    adoquery1.sql.add('update admin set pwd=:password,department=:un,purview=:pur,operater=:op,date=:lastdate where name=:username'); //少了两个:
      

  6.   

    就是,你的password沒加 : 號
    還有,建議樓主改寫爲:
     比如:
      adodataset.close;
      adodataset.commandtext:='select * from qq where username=:username';
      adodataset.parabyname('username').value:='1234';
      adodataset.open;
      

  7.   

    with adoquery1 do 
    begin
    colse;
    sql.clear;
    sql.add('update admin set pwd=@,department=@,purview=@,operater=@,date=@ ...where name=@');
    execsql;
    end;
    @表示变量,语法一定要正确。
      

  8.   

    真不明白这么简单一段话怎么搞出这么长的飞机了。。
    跟帖的也是千奇百怪,什么都有极度昏迷中!!
    //
    with adoquery1 do
     begin   
      Close
      SQL.Clear;
      SQL.Add('update admin set  pwd=:password,department=:un,purview=:pur,operater=:op,date=:lastdate where name=:username');
       Parameters.ParamByName(Password).value:=...;
       Parameters.ParamByName(un).value:=...;
       Parameters.ParamByName(pur).value:=...;
       Parameters.ParamByName(op).value:=...;
       Parameters.ParamByName(lastdate).value:=...;
       Parameters.ParamByName(username).value:=...;
       ExecSQL;
      end;
    //
    下面那个INSERT方法类似。