query1.Close;
        query1.SQL.Clear;
        query1.SQL.Add(format('select * from teacherbasic'+''+'where tyear='+'''%s''',[edit33.text]));
        query1.Open;
        query1.Active:=true

解决方案 »

  1.   

    我想通过edit33.text输入年份,然后查询表中所有的符合条件的记录,但是无法实现,(tyear不是key)
      

  2.   

    format在sql.add里面,是先执行SQL还是先执行format?
      

  3.   

    Tyear是什么类型的字段?
    你用的是什么数据库?
      

  4.   

    query1.Close;
            query1.SQL.Clear;
            query1.SQL.Add('select * from teacherbasic where (tyear='''+datetostr(edit33.text)''')');
            query1.Open;
      

  5.   

    query1.Close;
    query1.SQL.Clear;
    query1.SQL.Add('select * from teacherbasic where tyear=:Atyear');
    query1.ParamByName('Atyear').AsString:=Trim(edit33.text);
    query1.Open;
      

  6.   

    query1.Close;
            query1.SQL.Clear;
            query1.SQL.Add('select * from teacherbasic where tyear like ''%'+edit33.text+'''');
            query1.Open;
      

  7.   

    query1.Close;
            query1.SQL.Clear;
            query1.SQL.Add('select * from teacherbasic where tyear='''+edit1.text+'''');
            query1.Open;
    不是就行了吗???
      

  8.   

    你的写法是不行的,
    因为select语句显示的是一条一条的记录,而你的写法只能显示出第一条记录,
    也就是说:
    format('第一条记录','[edit33.text]);
    那怎么可能对呢,
    你可以按照我上面的写法写