str:='where user_name=' + Trim(EdtUser.Text);
提示错误,怎么办?
[Error] userLogin.pas(38): Incompatible types: 'TStrings' and 'String'

解决方案 »

  1.   

    运行通过,正常
    procedure TForm1.Button1Click(Sender: TObject);
    var str:string;
    begin
      str:='where user_name=' + Trim(Edit1.Text);
      showmessage(str);
    end;
      

  2.   

    你的str可能是TStrings对象,而非String类型!
      

  3.   

    那怎么转换?
    我用的是AdoQuery控件。我想赋值给他的Sql属性,
    ADOQuery1.SQL:='select * from tLoginuser' + Trim(EdtUser.Text);然后open.ADOQuery1.SQL的类型能不能强制转换?或者你们是怎么做的?(动态给个查询语句,然后执行)
    谢谢!
      

  4.   

    TStrings是抽象类不可以直接使用。
    要继承后才能用的。
      

  5.   

    ADOQuery1.close;
    ADOQuery1.SQL.clear;
    ADOQuery1.SQL.add('语句');
    ADOQuery1.open;
      

  6.   

    终于搞定了,谢谢大家!结贴!
    procedure TfrmLogin.BtnOkClick(Sender: TObject);
    var str:string;
    begin
    ADOQry.SQL.Clear;
    str:='select tLoginuser.*,tLoginGroup.content,tLoginComp.fgs_mc from tLoginuser left join tLoginGroup on tLoginuser.user_group=tLoginGroup.user_group left join tLoginComp on tLoginuser.fgs_bh=tLoginComp.fgs_bh ' +
         'where user_name=' + '''' + Trim(EdtUser.Text) + '''' + ' and user_pass=' + '''' + Trim(EdtPass.Text) + '''';
    ADOQry.SQL.Add(str) ;
    ADOQry.Open;
    begin  
      if ADOQry.RecordCount>0 then
        showmessage('aaa')  
      else
        showmessage('bbb');
    end;
    ADOQry.Close;
    end;