这样试试
Query1.SQL.Add('select * from data1.dbf where write=true and meet>30000');

解决方案 »

  1.   

    Query1.SQL.Add('select * from data1 where write=1');
    在每次Query1.SQL.Add前,加上Query1.SQL.clear;
    Query1.SQL.Add('select * from data1 where meet>30000');
      

  2.   

    试了一下,不行
    编译通过,运行出错,提示:
    ---------------------------
    |Invalid use of keyword   |
    |Token: write=1           |
    |Line Number: 1           |
    |                         |
    |           确定          |
    |--------------------------
      

  3.   

    1.Sql 没有boolean 请改为数值
    2.data1.dbf 改为 data1
      

  4.   

    query1.sql.add('select * from data1.dbf where write is 1');
    query1.sql.open;query1.close;
    query1.sql.clear;
    query1.sql.add('select * from data1.dbf where meet>30000');
    query1.open;试试看吧
      

  5.   

    Query1.SQL.Add('select * from data1.dbf where write=true');是不是TRUE没有进行转义
      

  6.   

    query1.close;
    query1.sql.clear;
    query1.sql.add('select * from data1.dbf where meet>30000');
    query1.open;要不行,你可以试试着一种方法:
    query1.close;
    query1.sql.clear;
    query1.sql.add('select * form data.dbf where meet=:meet and write=:write');
    query1.paramByName('write').asboolean:=true;
    query1.parambyName('meet').asinteger>5000;
    query1.prepare;
    query1.open;
      

  7.   

    write 是一个关键字,而且你把它定义keyword就不允许重复,不要把它设为主键,应该把它定义成 char(1) 取值限定在0和1
    分别对应'否'和'是':
    select * from data1 where writer=1第二个问题好像没错
      

  8.   

    在LocalSQL中请不要随便乱用类似Date,write等的字眼作为字段名。
      

  9.   

    zhongzhaowen(阿文)说得对。
    如果是Table可以用
    如果是文本
    format('select * from data1.dbf where meet=''%s''',[a]);
    如果是数字
    format('select * from data1.dbf where meet=%d',[a]);