如何篩選一些記錄﹐然后進行編緝其中的記錄?(200分)

  • 主题发起人 WilliamGui
  • 开始时间
W

WilliamGui

Unregistered / Unconfirmed
GUEST, unregistred user!
一個數據表﹐有很多記錄﹐
我想篩選出一些記錄﹐比如說符合 1997年到2001年 ﹐且符合 性別為女的 ﹐的那些記錄﹐
很明顯此兩個字段不為索引關鍵字﹐
現在﹐把這些記錄顯示在柵格控件中﹐選定其中一筆﹐
然后進行編輯并存盤﹐
如何做到??? 最好大家自己簡單試試再說。
高分求教!
 
用query就可以阿
 

可能大家有點誤會了﹐
我從 Database Server 上得到的所需數據放在本機中﹐想臨時篩選一下﹐
選中編輯﹐不想用sql語句﹐每次再查詢﹐費時費力。

比如說﹐我要看看昨天輸入了哪些記錄﹐其中﹐我要修改其中一筆﹐又要看看前天輸入了
哪些記錄﹐又要修改其中一筆,......
 
大哥,你不知道SQL吗?
快学习吧,搞数据不能不懂SQL!
简单的例子:
查询表中所有性别为女的记录:
select * from tableName where sex='man'
说不清,你自己看书吧,easy!
 
如果你的业务逻辑是固定的话(比方说你总是查看昨天输入的记录)
就可以用table的filter来实现
否则你想操作作的灵活就必须用Tquery
其实也不麻烦,一共就几个字段,符合几个标准,
你把datasource指向Tquery,每次修改之后,query.post一下就搞定了;我试过!
 
DevExpress 的TdxDBGrid可以实现你的功能
其他控件应该也有相似的功能吧? 就是数据还是一样的数据
只不过可以加一个或多个过滤条件把符合条件的记录显示出来让你修改。
 
另: 这种操作是不用跟数据库打交道的,如果你用SQL来实现就不行了
必需执行SQL才能有此效果,当然TdxDBGrid也允许你把过滤条件直接应用到DataSet上
就是说跟改变SQL的Where子句一样。
 
用FILTER筛选呀

AdoQuery.Filtered := false;
AdoQuery.Filter := '[fieldname] = '+ ...
AdoQuery.Filtered := true;

筛选后显示的就是你想要的
选一条编辑罢

另外,想恢复
则AdoQuery.Filtered := false;
 
To 萧月禾:
請你親自試一試﹐是否可以編輯

 
WilliamGui:萧月禾说得没错呀。
 
AdoQuery1.Readonly := False;
DbGrid1.Readonly := False;
DgGrid.Options := [dgEditing,dgTitles,dgIndicator,dgColumnResize,dgColLines,dgRowLines,dgTabs,dgConfirmDelete,dgCancelOnExit];
 
接受答案﹐謝謝大家。
 
顶部