我在存储过程中写到
declare  sqlstr varchar(200)
sqlstr:='select *  from'+@tablename+'where '+sqlstr
execsql;
我在adoquery中调用要用到like;
例如:id like '%edit1.text%'调试的半天,还是没有解决。
我是这么写的:
var  sqlstr:string;
sqlstr:='1<>0';
sqlstr:=sqlstr+'and  id  like '%edit1.text%';
数据库是SQL7,DELPHI5,IBMT30

解决方案 »

  1.   

    sqlStr:=sqlstr + ' and id like ''' + edit1.text + '''';
    记住一点在Delphi字符串中两个单引号代表最后显示出来的一个ePing
      

  2.   

    var  sqlstr:string;
    sqlstr:='1<>0';
    sqlstr:=sqlstr+'and  id  like '+''''+'%edit1.text%'+'''';
      

  3.   

    sqlstr:=sqlstr+'and  id  like '+''''+'%'+trim(edit1.text)+'%'+'''';
      

  4.   

    sqlstr:='1<>0';
    sqlstr:='1<>0 ';//这里不有一个问题。多空一个格出来。要不然和and 连在一起了。
      

  5.   

    使用Parameters可以这样做
    adoquery1.Parameters.ParamByName('de').Value:='%'+text+'%';
    好简单的,也非常好用
      

  6.   

    把你的全部语句贴出来。一定是其它地方出问题了。我敢保证。
    就是上面的语句,在查询分析器里执行一定没问题,sqlstr:=sqlstr+'and  id  like '+''''+'%'+trim(edit1.text)+'%'+'''';
    你用监视器看一下就知道么回事,
      

  7.   

    你的语句肯定有问题,我试过了。
    看来你也和我犯了同样的错误——看问题比较简单
    你用SHOWMESSAGE(SQLSTR)
    看看你的SQLSTR是什么内容!
      

  8.   

    你用的什么数据库,
    在Sql server 一定没问题
    showmessage('and  id  like '+''''+'%'+trim(edit1.text)+'%'+'''');
    显示结果。
    and id like '%edit1%'
      

  9.   

    create procedure name (@tablename,@str varchar(20))
    as
    begin
    declare  sqlstr varchar(200)
    set sqlstr:='select *  from'+@tablename+'where '+str//这条语句前加个
    exec(sqlstr)
    end;
      

  10.   

    create procedure name (@tablename varchar(50),@str varchar(20))
    as
    begin
    declare  sqlstr varchar(200)
    set sqlstr:='select *  from'+@tablename+'where '+str//这条语句前加个
    exec(sqlstr)
    end;
      

  11.   

    我在QUERY  ANALYZER中只有这样写才能通过:
    SQLSTR:='1<>0'  AND 'ID LIKE  "%123%"'
    不信你试试看。
    如果
    SQLSTR:='1<>0'  AND  'ID  LIKE '%123%''
    肯定报错!
      

  12.   

    借My_first(海浪) 先生代码create procedure name (@tablename varchar(50),@str varchar(20))
    as
    begin
    declare  @sqlstr varchar(200)
    set SqlStr = 'select * from  ' + @tablename + ' where ' + Str ;
    Exec(SqlStr) ;
    end;
    Str := '1 <>0  and id like ''%' + Edit1.Text +'%''' ;对吗 ?
      

  13.   

    补 :借My_first(海浪) 先生代码create procedure name (@tablename varchar(50),@str varchar(20))
    as
    begin
    declare  @sqlstr varchar(200)
    set @SqlStr = 'select * from  ' + @tablename + ' where ' + Str ;
    Exec(@SqlStr) ;
    end;
    Str := '1 <>0  and id like ''%' + Edit1.Text +'%''' ;对吗 ?