ADOQuery1.Parameters.ParamByName('user_name').DataType :=ftsting;//定义参数为字符串类型
ADOQuery1.Parameters.ParamByName('user_name').Value :=trim(edit1.text); //给参数赋值
ADOQuery1.Parameters.ParamByName('user_pwd').DataType :=ftinteger;
ADOQuery1.Parameters.ParamByName('user_pwd').Value :=trim(edit1.text); 

ADOQuery1. sql.Add('insert into twtable (user_name,user_pwd) values('''+Edit1.Text+''','''+Edit2.Text+ ''')');

ADOQuery1.FieldByName('user_name').Value:=Eidt1.Text;
ADOQuery1.FieldByName('user_pwd').Value:=Eidt2.Text;
有什么不同????Parameters与Filter又有什么不同?
对比起来哪个更好些?

解决方案 »

  1.   

    Parameters与Filter又有什么不同? 
    P 是参数你必须在DataSet组件里定义参数才使用,F过滤器,查找记录用的
      

  2.   

    parameters是传递给数据库的参数
    filter是delphi数据集的过滤条件,不用传到数据库里
      

  3.   

    我一般用Locate查找,filter不大好使
      

  4.   

    1、参数:是指在向数据库服务器发出查询请求前给定条件。是返回结果集前指定查询条件。
    2、过滤Filter:是指返回结果集后,在结果集中进行过滤(即按指定条件进行筛选),不符合指定条件的记录会隐藏不显示。
    3、定位Locate:是指在结果集中按指定条件进行定位,其他不符合条件的记录仍然显示。
      

  5.   

    ADOQuery1.Parameters.ParamByName('user_name').DataType   :=ftsting;//定义参数为字符串类型 
    ADOQuery1.Parameters.ParamByName('user_name').Value   :=trim(edit1.text);   //给参数赋值 
    ADOQuery1.Parameters.ParamByName('user_pwd').DataType   :=ftinteger; 
    ADOQuery1.Parameters.ParamByName('user_pwd').Value   :=trim(edit1.text);   
    与 
    ADOQuery1.   sql.Add('insert   into   twtable   (user_name,user_pwd)   values('''+Edit1.Text+''','''+Edit2.Text+   ''')'); 
    与 
    ADOQuery1.FieldByName('user_name').Value:=Eidt1.Text; 
    ADOQuery1.FieldByName('user_pwd').Value:=Eidt2.Text; 
    有什么不同???? 
    这个没有有没有帮忙解释的?
      

  6.   

    ADOQuery1.Parameters.ParamByName('user_name').DataType       :=ftsting;//定义参数为字符串类型   
    ADOQuery1.Parameters.ParamByName('user_name').Value       :=trim(edit1.text);       //给参数赋值   
    ADOQuery1.Parameters.ParamByName('user_pwd').DataType       :=ftinteger;   
    ADOQuery1.Parameters.ParamByName('user_pwd').Value       :=trim(edit1.text);       
    与   
    ADOQuery1.       sql.Add('insert       into       twtable       (user_name,user_pwd)       values('''+Edit1.Text+''','''+Edit2.Text+       ''')');   
    与   
    ADOQuery1.FieldByName('user_name').Value:=Eidt1.Text;   
    ADOQuery1.FieldByName('user_pwd').Value:=Eidt2.Text;   
    有什么不同????   
    这个没有有没有帮忙解释的?
    ------------------
    肯定有不同的,在上部份'user_pwd'类型为integer,而一面是字符型.
    //1
    ADOQuery1.Parameters.ParamByName('user_name').DataType       :=ftsting;//定义参数为字符串类型   
    ADOQuery1.Parameters.ParamByName('user_name').Value       :=trim(edit1.text);       //给参数赋值   
    ADOQuery1.Parameters.ParamByName('user_pwd').DataType       :=ftinteger;   
    ADOQuery1.Parameters.ParamByName('user_pwd').Value       :=trim(edit1.text);  //2ADOQuery1.sql.Add('insert into twtable (user_name,user_pwd)values('''+Edit1.Text+''',' +Edit2.Text+ ')');  
    //3ADOQuery1.FieldByName('user_name').Value:=Eidt1.Text;   
    ADOQuery1.FieldByName('user_pwd').Value:=strtoint(Eidt2.Text);   这样改了的话就相同了
      

  7.   

    要的就是9楼补充的那句呵呵
    第一种是不是应用于缓存技术的?第三种的更新是什么意思?好像也可插入啊另:
    ADOQuery1.FieldByName('user_pwd').Value:=strtoint(Eidt2.Text);   
    貌似编译不过去
    第一种的类型是我笔误写错了  
      

  8.   

    不好意思第三个也可以插入.ADOQuery1.FieldByName('user_pwd').Value:=strtoint(Eidt2.Text);  
    这一句是没有错的,strtoint()是类型转换    
      

  9.   

    我都不用那种方法,直接就是
    with adoquery1 do
      begin
         close;
         sql.clear;
         sql.text:='insert into 表名(字段1,字段2,.....)values(:字段1,:字段2,.....)';
         Parameters.ParamByName('字段1).Value:=trim(edit1.text);//字符串类型
         Parameters.ParamByName('字段1').Value:=strtofloat(edit2.text);浮点类型 
         ExeSQL;  
    end; 
    当然更新数据库也是这样的  我是一直这样写的
      

  10.   

    楼上的          Parameters.ParamByName('字段1).Value:=trim(edit1.text);//字符串类型 
               Parameters.ParamByName('字段1').Value:=strtofloat(edit2.text);浮点类型   
        
    这两句不要也行吧