我在编程时遇到一个问题:就是要查询的图号中前三位与之匹配的
    
  用下列语句不行:
         Query1.Sql.add(SELECT * FROM MYTABLE WHERE DRAWING LIKE :STR2 );
         Query1.Sql.Add('%');
      HELP!!!

解决方案 »

  1.   

    with adoquery1 do
        begin
          close;
          sql.Clear;
          sql.Add('select * from danweibiao where dwmc like :dwmc');
          Parameters[0].Value:='%'+edit1.text+'%';
          open;
        end;
      

  2.   

    STR2为 一动态参数 是个STRING型的参数
      

  3.   

    Query1.Sql.text:='SELECT * FROM MYTABLE WHERE DRAWING LIKE ''%' +str+'%''';
      

  4.   

    不用那么麻烦吧
    'select * from tytable where drawing like ''%'+edit1.text+'%'''
    就行了啊,把SQL语句弄出来看看
      

  5.   

    Query1.Sql.add(SELECT * FROM MYTABLE WHERE DRAWING LIKE ''');
    query1.sql.add(str2+'%''');
    //str2在此处为一string型变量!
      

  6.   

    NO.1:
    Query1.Sql.add(SELECT * FROM MYTABLE WHERE DRAWING LIKE :STR2 );
    Parameters[0].AsString := Edit1.Text + '%';
    Open;
    NO.2:
    Sql.Add:='SELECT * FROM MYTABLE WHERE DRAWING LIKE ' +#39 + str+ '%' +#39;
    Open;
      

  7.   

    一楼找什么急啊?你的又不对,人家要得是前三位符合Query1.Sql.text:='SELECT * FROM MYTABLE WHERE DRAWING LIKE ''' +str+'%'''
      

  8.   

    用:STR2 这样的负值方法比较好,因为你不知道用户填的是什么,用这种方法
    比较安全!
      

  9.   

    嘗試一下:
    'SELECT * FROM MYTABLE WHERE DRAWING LIKE  '+quotedstr(str+'%');
    其中str是你要匹配的串的前三位!