5
500/2
Unregistered / Unconfirmed
GUEST, unregistred user!
我发现是不是大型数据库逻辑顺序和物理顺序是分开的?
请看下面的例子:(SQL=SELECT * FROM 数据库)
在DBGRID中显示一库内容:
序号 人员编号 姓名
1 001 张三
2 002 王五
3 003 赵六
其中序号字段是一计算字段,参照以前大虾们的讨论结果设置:
dataset1['no']:=recno; 表面看效果还是不错的。但是.....
当我将光标移到第二行,按[INS]键,插入新行“李四”的时候,
出现奇怪现象:
问题一:
序号 人员编号 姓名
1 001 张三
3 (空白)(空白)//怎么序号是3,理想情况1,2,3,4
2 002 王五
3 003 赵六
问题二:
序号混乱尚无关大碍,大不了不要了,但当光标移倒其它行时,
出现更为奇怪的结果:
序号 人员编号 姓名
1 001 张三
2 002 王五
3 003 赵六
4 ??? 李四//序号倒是顺了,只是没插入,而是APPEND
故此,我认为:大型数据库逻辑顺序与物理顺序是分开的,
当你插入的时候,实际上追加(APPEND),只是用SQL排序才能出现
想要的结果。
我想只能如下解决:
①改SQL为 Select * from 数据库 order by 人员编号
②每插入、删除、追加新记录时就先CLOSE、再OPEN数据集
或刷新数据集
太苯了,有无好办法?
请看下面的例子:(SQL=SELECT * FROM 数据库)
在DBGRID中显示一库内容:
序号 人员编号 姓名
1 001 张三
2 002 王五
3 003 赵六
其中序号字段是一计算字段,参照以前大虾们的讨论结果设置:
dataset1['no']:=recno; 表面看效果还是不错的。但是.....
当我将光标移到第二行,按[INS]键,插入新行“李四”的时候,
出现奇怪现象:
问题一:
序号 人员编号 姓名
1 001 张三
3 (空白)(空白)//怎么序号是3,理想情况1,2,3,4
2 002 王五
3 003 赵六
问题二:
序号混乱尚无关大碍,大不了不要了,但当光标移倒其它行时,
出现更为奇怪的结果:
序号 人员编号 姓名
1 001 张三
2 002 王五
3 003 赵六
4 ??? 李四//序号倒是顺了,只是没插入,而是APPEND
故此,我认为:大型数据库逻辑顺序与物理顺序是分开的,
当你插入的时候,实际上追加(APPEND),只是用SQL排序才能出现
想要的结果。
我想只能如下解决:
①改SQL为 Select * from 数据库 order by 人员编号
②每插入、删除、追加新记录时就先CLOSE、再OPEN数据集
或刷新数据集
太苯了,有无好办法?