一点都不了解ParamByName和parameter

解决方案 »

  1.   

    ParamByName是存取参数用的
    没有FileByName,只有FiledByName
    FiledByName是存取字段用的with FADOQuery do begin
        Close;
        SQL.Clear;
        SQL.Add('select * from Products where pID=''''+Edit1.Text+'''');
        Open;
        ProName:=FieldByName('ProductName').asString;
    end;with FADOQuery do begin
        Close;
        SQL.Clear;
        SQL.Add('select * from Products where pID=:paID');
        ParamByName('paID').Value:='001';
        Open;
    end;
      

  2.   

    ParamByName 根据参数名指定参数with ADOQuery do begin
        Close;
        SQL.Clear;
        SQL.Add('select * from a where names= :a);
        ParamByName('a).Values := 'w kao'
        Open;
    end;上面的等于SQL.Add('select * from a where names= "w kao"');
      

  3.   

    晕..上面的打错了..
    该是ParamByName('a').Value := 'w kao'
      

  4.   

    FiledByName是根据字段名取当前记录的值..或赋值with ADOQuery do 
    begin
        Close;
        SQL.Clear;
        SQL.Add('select * from a where names= :a);
        Open;
        Showmessage(FieldByName('name').AsString);
    end;回答的比较白。。希望你能理解= =~
      

  5.   

    首先谢谢给位了。
    既然有:
    with ADOQuery do begin
        Close;
        SQL.Clear;
        SQL.Add('select * from a where names= :a);
        ParamByName('a).Values := 'w kao'
        Open;
    end;上面的等于SQL.Add('select * from a where names= "w kao"');那为什么不直接用SQL.Add('select * from a where names= "w kao"');这样不是更简单明了。
      

  6.   

    打个比方with ADOQuery do begin
        Close;
        SQL.Clear;
        SQL.Add('select * from a where ID= :a);
        ParamByName('a).Values := 1
        Open;
    end;with ADOQuery do begin
        Close;
        SQL.Clear;
        SQL.Add('select * from a where ID= '+IntToStr(1));
        Open;
    end;你觉得哪个好点?
      

  7.   

    你检索条件越多..
    ParamByName的好处越能体现..
    SQL.Add('select * from a where ID= :a or id2 =:b or id3 =:c);
    ParamByName('a').Values := 1;
    ParamByName('b').Values := 2;
    ParamByName('c').Values := 3;
    SQL.Add('select * from a where ID= '+IntToStr(1)+'or id2 ='+IntToStr(2)+......);//后面的实在打不下去了。。太累