我在AdoQuery里Parameters属性里设置了DataType为ftString,Name为N1
然后在程序里写入这样的语句:
procedure TF_main.Button11Click(Sender: TObject);  //查询客户信息
begin
  with DataMo.Q_user_info do  
  begin
   Close;  
   SQL.Add('select * from  client where id=:N1');
   Parameters.ParamByName('N1').Value:=i_client_id_3.Text;
   Open;  
end;
出现错误:parameter对象被不正确定义,提供了一条不正确或不完整的信息
我是使用AdoQuery的初学者,对SQL也是刚了解一点。请问如果Access里表client
的字段id是char的。我在DataMo.Q_user_info里的 Parameters设置如我最上边的说明。为什么出现这样的问题,怎么改呢?设置参数一般步骤是什么?
里边的属性设置主要有哪几项呢?
我非常焦急,请大家来帮帮忙!

解决方案 »

  1.   

    pchar(i_client_id_3.Text);试试, i_client_id_3.Text是字符吧?
      

  2.   

    procedure TF_main.Button11Click(Sender: TObject);  //查询客户信息
    begin
      with DataMo.Q_user_info do  
      begin
       Close;  
       SQL.Add('select * from  client where id=:N1');
       Parameters.Parameters[0].Value:=i_client_id_3.Text;
       Open;  
    end;试试。Parameters[x]字端号。
      

  3.   

    换一下位置
       Parameters.ParamByName('N1').Value:=i_client_id_3.Text;
       SQL.Add('select * from  client where id=:N1');
      

  4.   

    我在AdoQuery里Parameters属性里设置了DataType为ftString,Name为N1
    根本就不用进行设置
      

  5.   

    Close;  后边一般要加一个Clear;
      

  6.   

    ADOQuery里没有Clear方法。 我都试过了上边的方法。还是出现原来的错误
      

  7.   

    with DataMo.Q_user_info do  
      begin
       Close; 
       SQL.CLEAR//注意这里,否则SQL。TEXT可就成了很多SQL脚本了; 
       SQL.Add('select * from  client where id=:N1');
       Parameters.Parameters[0].Value:=i_client_id_3.Text;
       Open;  
    end;
      

  8.   


    谢谢大家的帮助!
    使用了 SQL.CLEAR解决了这个问题。
    clear的作用是什么
    它是清除以前写过的sql查询语句吗?