请问,数据集(AdoQuery、UniQuery等)怎么手动改变两条记录位置
请教,数据集(AdoQuery、UniQuery等)如何手动改变两条记录位置?比如 select 并 order by之后的记录次序为:张
请教,数据集(AdoQuery、UniQuery等)如何手动改变两条记录位置?
比如 select 并 order by之后的记录次序为:
张三 ,x,y,z
张四 ,x,y,z
张五 ,x,y,z
张六 ,x,y,z
只需把张五往上移动一行,与张四的位置互换,其它的记录位置不能变动,移动后变成
张三 ,x,y,z
张五 ,x,y,z
张四 ,x,y,z
张六 ,x,y,z
用update交换两条记录数据似乎比较麻烦,而且记录还有唯一性约束,不好办,有没有像处理字符串列表那样更简单、快捷的方法来处理数据集中的记录?
[解决办法]
[解决办法]其实,在数据库的物理存储中,数据并不是象我们想象那样顺序存放的,也就不存在楼主所说的记录交换位置的说法。你所要求的,其实是表现形式而已。完全可以设置一个单独的排序字段,至于你提到数据量大的时候刷新的问题,我建议只提取显示范围*3的数据量即可。比如你的显示窗口能显示25条数据,那么你就从数据库中取75条出来。大多数情况下是没必要都取过来的,超过三页的数据用户就懒得看了。这时就需要增加筛选过滤条件了。2楼的说法我支持,排序字段不要连续排,否则插值的时候麻烦,根据情况设置间距,我一般设置成10,目前能满足要求。
[解决办法]用StringGrid之类的,想怎么放就怎么放,如果用DBGrid或者cxgrid之类的话,不加字段的话,暂时没找到什么办法