TTable怎样实现类似SQL Select..form...where...like...的功能?
希望在DBGrid中过滤数据 
并且希望能在过滤后 编辑  谢谢

解决方案 »

  1.   

    TTable不具备SQL功能,要不然就用filter来过滤吧,但是效率会降低。
    只要设一设readonly属性就可以更改能否编辑的事了。
      

  2.   

    可不可以 说详细点 我刚接触delphi不久比如我想 只在DBGrid中显示 'NAME' 字段  为  n 开头的记录 如 name1 nam2 的记录
      即类似  Select all form...where NAME like ‘n'
    如何实现 请指教
      

  3.   

    TTable始终不如TSQL灵活,要执行查询那就得用TSQL来代替TTable,只需要在将你的那段代码加入TSQL.SQL属性里,然后设置Active属性为True就可以了!
    代码改为
    Select * from ... where name like 'n%'
      

  4.   

    谢谢 指教 TSQL 是不是SQLTable 我用的 delphi7没看见tsql
    TableMain.DatabaseName := ExtractFilePath (Application.ExeName);
    TableMain.TableName := 'Data.db';
    TableMain.Open;那用SQLTable怎样实现啊   
    delphi的帮助怎么看啊 
    语法 也就
    Delphi syntax:property SQLConnection: ISQLConnection;就完乐
    连个实例都找不到
      
      不会用啊
      

  5.   

    好像你用的代码并不是你当前正在使用的数据库连接组件,虽然你说的不太明白,但我想你应该是用BDE页的组件实例代码在对Interbase或DBExpress系列的组件进行操作,或者你用的是ADO,但你要知道你刚才写的代码是BDE的连接方式,如果要使用其它的方式连接的话(在Delphi里可以有多种方式进行与数据库的连接)就要参考与其相关连接方式的书籍。如你上面的ISQLConnection就是一个专门用于连接数据库的组件,而且不能用于你你上面给出的'Data.db'的数据库(那是一种桌面级的数据库),而ISQLConnection只能与大型数据库相连。  建议你翻到BDE页,使用BDE连接方式提供的组件进行操作就没有问题了。
      

  6.   

    我现在是用TTable连接的 TableMain 是一个TTable
    TableMain.DatabaseName := ExtractFilePath (Application.ExeName);
    TableMain.TableName := 'Data.db';
    TableMain.Open;
    不过我想 实现类似 Select * from ... where name like 'n%' 的数据过滤试过用TQuery 不过TQuery  执行 Select * from ... where name like 'n%'后 TDBGrid是锁定的 不能编辑  所以现在又用TTable了 好像 可以用SetRange过滤数据 不过 说要Index
    TTable打开数据库后 不知怎样建Index啊不知还能怎样实现     请指教  
      

  7.   

    要创建索引文件可用Delphi自带的桌面数据库管理工具实现,不过设置范围也不是一个很好的方法,且这只是一个用于学习的法子,至少我是这么认为。如果要过渡到大型数据库的话最好是使用查询构件(如TQUERY,好像在查询大型数据时是可以编辑的,如Oracol或MSSQLServer,但要先设置数据控件的AutoEdit属性为真及Only为非只读)。修改数据也可以结合其它方法,如采用双数据集构件,一个用于查询,另一个用于编辑。要求比较特殊,那实现的方法也自然就会特殊点乐!
      

  8.   

    谢谢  NumberTop(铁兵)兄  ^-^
     
       我先下去试试
      

  9.   

    TQUERY 好像没有 AutoEdit属性  和设置读写属性的地方
     
      有个 RequestLive 我试过了 
    sql 是 ... where ...=...是可以编辑  但是   ...where...like..还是在查询后不能编辑  
      

  10.   

    TQuery 执行select.. form...where...like..
    在查询后不能编辑呀