Query:=TADOQuery.create(nil);//正确
    Query.Connection:=dmData.ADOCon;//正确
    Query.SQL.Add('delete  Operator where UserName=:UserName');
    Query.Parameters.ParamByName('UserName').Value  :=UserName ;
    Query.ExecSQL ;//执行时报错
    Query.close;
    Query.Free;
为什么执行时报错呢?Operator 是表

解决方案 »

  1.   

     Query.Parameters.ParamByName('UserName').Value  :=UserName ; 
    这是ADOquery1的属性
    query1 没有这个属性的.看这个
    直接写 ADOquery1. 它就弹出属性,有就选,回车,没有也不能直接手写这样会减少出错.正确的应是 
        ADOquery1.SQL.Add('select *  from stuinfo  where  性别=:xb'); 
        ADOquery1.Parameters.ParamByName('xb').Value:=trim(edit3.text); 
        ADOquery1.Open;  
       而 query1.
    Query1.Params[0].AsString:=edit1.Text;
      

  2.   

    Query是个变量名,上面有个
    Var
      Quer:TADOQUery;楼上的还是不行。
      

  3.   

    而且执行delete,最好用ADOQuery的ExeSQL比较好。
      

  4.   

    提示:语法操作(操作符丢失)在查询表达式'Operator where userName=?'中
      

  5.   

    先直接写个值试试。where userName='sa'
      

  6.   

    function TParameters.FindParam(const Value: WideString): TParameter;返回的是TParameter类型,TParameter = class(TCollectionItem)。你用TParameter 中的Item或者ParamValues来实现例如
    Query.Parameters.Item[0].value := ***;Query.Parameters.ParamValues['UserName'] :=***;
      

  7.   


    因为按照他的赋值方式,userName参数根本就没有值。
      

  8.   


        Query:=TADOQuery.create(nil);//正确
        try
          Query.Connection:=dmData.ADOCon;//正确
          Query.SQL.Add('delete from Operator where UserName='+QuotedStr(UserName));
          Query.ExecSQL ;//执行时报错
          Query.close;
        finally
          Query.Free;
        end 
      

  9.   


    对了 你要先判断 
    if length(trim(UserName))<>0 then
    begin
      ..........
    end
     
      

  10.   

    Q_:=TADOQuery.create(nil);
    try
      Q_.Connection:=dmData.ADOCon;
      Q_.SQL.Add('delete from Operator where [UserName]=:UsName');
      Q_.Parameters.ParamByName('UsName').Value:=UserName;
      Q_.ExecSQL;
    finally
      Q_.Free;
    end 
      

  11.   

    1.sql delete 的语法是:
    DELETE [表名.*] 
    FROM 表名 
    WHERE 条件表达式 
     
    2.
    楼主的SQL语句时,最好不要出现 系统保留字 一类的,比如system user password 之类,
    如果要用须用[]括起来,比如[system] [user] [password]
      

  12.   

    UsName应该定于一个值;
    如: if DBGridEh1.DataSource.DataSet.FieldValues['SA'] <> Null then
            UserName':= DBGridEh1.DataSource.DataSet.FieldValues['SA']
        Query:=TADOQuery.create(nil);//正确 
        Query.Connection:=dmData.ADOCon;//正确 
        Query.SQL.Add('delete  Operator where UserName=:UserName'); 
        Query.Parameters.ParamByName('UserName').Value  :=UserName ; 
        Query.ExecSQL ;//执行时报错 
        Query.close; 
        Query.Free; 
    应该不会错.