起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 173|回复: 9

数据集没法遍历了**

[复制链接]
发表于 2007-4-12 18:34:40 | 显示全部楼层 |阅读模式
Grid绑定数据集,点列头排序后,这个数据集就不能遍历了,怎么解决这个问题
DataSet .First;
while not DataSet do
begin
    DataSet .Edit;
    DataSet .FieldByName('xxx').AsString := 'xxx';
    DataSet .Next;
end;
结果不是每条记录都被赋值了,这与按哪列排序有关
怎么在这种情况下遍历数据集
回复

使用道具 举报

发表于 2007-4-13 08:17:04 | 显示全部楼层
while not DataSet do 改成while not DataSet.Eof do
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-4-13 09:02:46 | 显示全部楼层
DataSet .First;
while not DataSet.Eof do
begin
    DataSet .Edit;
    DataSet .FieldByName('xxx').AsString := 'xxx';
    DataSet .Next;
end;
刚才是打错了,没Eof,编译都通不过,呵呵
主要现象是因为需要遍历赋值,如不幸按你赋值的那列排序了,那就会导致赋值后重新排序,就不能全部遍历了,但找不到让Grid暂时不排序的办法,就让它不排序我知道,但这个Grid还是要排序的,只是在遍历时暂时不要排序怎么做?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-4-13 10:10:48 | 显示全部楼层
在线等
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-4-13 10:22:04 | 显示全部楼层
顶一下
回复 支持 反对

使用道具 举报

发表于 2007-4-13 11:30:29 | 显示全部楼层
正在想办法由结果马上跟贴告知
回复 支持 反对

使用道具 举报

发表于 2007-4-13 11:35:47 | 显示全部楼层
Grid排序和数据集没有直接关系,DataGrid的排序最终设置的是 DataSet.Order,具体不确定是什么问题。

可以这样看看,并且这样会提高效率:

DataSet .DisableControls;
try
DataSet .First;
while not DataSet do
begin
    DataSet .Edit;
    DataSet .FieldByName('xxx').AsString := 'xxx';
    DataSet .Next;
end;
finally
  DataSet EnableControls;
end;
回复 支持 反对

使用道具 举报

发表于 2007-4-16 10:18:23 | 显示全部楼层
??
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-5-28 17:02:17 | 显示全部楼层

问题没解决

我代码贴得不够,我以为这个问题你们知道

DataSet .DisableControls;

DataSet .First;
while not DataSet do
begin
    DataSet .Edit;
    DataSet .FieldByName('xxx').AsString := 'xxx';
    DataSet .Next;
end;

DataSet EnableControls;

之前之后都有
DataSet .DisableControls;
DataSet EnableControls;
是不行的,原因是见3楼
是否有办法??
回复 支持 反对

使用道具 举报

发表于 2007-5-28 17:52:02 | 显示全部楼层
DataSet .DisableControls;

tmpstr L= DataSet.Order
DataSet.Order := '';

DataSet .First;
while not DataSet do
begin
    DataSet .Edit;
    DataSet .FieldByName('xxx').AsString := 'xxx';
    DataSet .Next;
end;

DataSet.Order := tmpstr;

DataSet EnableControls;
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-1-11 04:10 , Processed in 0.034441 second(s), 15 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表