我编写了个数据库,
用Datebase desktop编写了Task.db与BTask文件,driver是standard的. 
想在初始化时用SQL在程序中加入对Task.db查询后的内容,
而后在程序中还能用SQL动态的查询Task.db,并更新表格.我用了TTable,TDatesource,TDateGrid三个控件,没达到预期效果.
问一下各位,有没有什么办法改进,最好不改变数据格式和驱动,可以改变控件!

解决方案 »

  1.   

    用QUERY吧。 TABLE不是很好。动态查询的时候写SQL语句就可以了。
      

  2.   

    用SQL查询出来结果后再动态查询的话可以用Filter属性对符合一定条件的记录进行过滤,关于Filter的使用方法可查一下这方面 的贴子,很多的
      

  3.   

    我用了,
    不过有两个问题:
    1.我这样使用SQL:
      Query1.Open;
      Query1.SQL.Clear;
      Query1.SQL.Add('Select * from Task');
      Query1.ExecSQL;
    但是DateGrid中却没有数据连接,为什么?
    2.我想用TCalendar的CalendarDate作为按日期查询的一个值,但SQL说参数不符???
      

  4.   

    1. 执行完后刷新一下
       Query1.Close;
       Query1.Open;2. 看一下日期格式是否正确。
       再看一下数据库里面的日期字段是用的什么类型?
      

  5.   

    Query1.SQL.Clear;
    Query1.SQL.Add('Select * from Task');
    Query1.open;这样用就可以了!
      

  6.   

    谢谢,第一个问题解决了!!!
    SQL我是这样写的
    Query1.SQL.Add('Select * from Task where 是否完成 = False and 任务日期 = ' + DateToStr(calDate.CalendarDate));
    但是执行时会出错:Type mismatch in expression.
    我的db用的是date,想不通???
      

  7.   

    Query1.SQL.Add('Select * from Task where 是否完成 = False and 任务日期=:ADate '); 
    Query1.ParamByName('ADate').Value := calDate.CalendarDate;
    Query1.Open;
      

  8.   

    注意:在SQL语句中不管字段是什么类型,SQL语句里都是字符串。