8 8122338 Unregistered / Unconfirmed GUEST, unregistred user! 2006-10-17 #1 环境:WINDOWS2000 PRO SP4,ACCESS2000数据库,DELPHI6,假如人工打开数据库并在当中位置删除一条记录,然后人工关闭数据库,用ADOTABLE1插入一条记录,就会在原来删除的位置自动增加,而不是在数据库结尾增加,为什么?谢谢,
环境:WINDOWS2000 PRO SP4,ACCESS2000数据库,DELPHI6,假如人工打开数据库并在当中位置删除一条记录,然后人工关闭数据库,用ADOTABLE1插入一条记录,就会在原来删除的位置自动增加,而不是在数据库结尾增加,为什么?谢谢,
8 8122338 Unregistered / Unconfirmed GUEST, unregistred user! 2006-10-17 #4 不管如何,程序都应该把记录加在ACCESS末尾的呀,为什么会插在当中呢?谢谢
一 一只菜鸟Olala Unregistered / Unconfirmed GUEST, unregistred user! 2006-10-18 #5 确实是排序问题,建立数据表后每个记录有一个排列序号,你从中间删掉了一行,则序号A的记录DELETE,可是该记录的上一条和下一条的序号仍然是A-1和A+1,这时再插入一条,得到的序号是A,肯定会在之前A记录的位置上.
确实是排序问题,建立数据表后每个记录有一个排列序号,你从中间删掉了一行,则序号A的记录DELETE,可是该记录的上一条和下一条的序号仍然是A-1和A+1,这时再插入一条,得到的序号是A,肯定会在之前A记录的位置上.
8 8122338 Unregistered / Unconfirmed GUEST, unregistred user! 2006-10-18 #6 程序运行后按照删除后的数据库建立了新的连接,排列序号应该重新产生(按照新的数据库的内容),不是吗?所以还是应该加再末尾?
A aricyoung Unregistered / Unconfirmed GUEST, unregistred user! 2006-10-18 #7 用的是append,还是insert?二者有区别
J Johnny_du Unregistered / Unconfirmed GUEST, unregistred user! 2006-10-18 #8 用Append! 解释: 1、Append是在记录尾部追加(就像Append关键字的译文一样是“追加”的意思)新记录; 2、Insert是在当前记录点前插入(就像Insert关键字的译文一样是“插入”的意思)新纪录。 比如:原来数据库中有200条记录,目前数据库记录指针位于第100条记录处。则用Append关键字的操作将在数据库的尾部追加第201条记录,并且记录指针移至当前记录(即第201条记录处,或者说移至数据库记录尾部);若用Insert关键字则在第99条与第100条记录间插入新纪录,并且记录指针停留在该记录处。
用Append! 解释: 1、Append是在记录尾部追加(就像Append关键字的译文一样是“追加”的意思)新记录; 2、Insert是在当前记录点前插入(就像Insert关键字的译文一样是“插入”的意思)新纪录。 比如:原来数据库中有200条记录,目前数据库记录指针位于第100条记录处。则用Append关键字的操作将在数据库的尾部追加第201条记录,并且记录指针移至当前记录(即第201条记录处,或者说移至数据库记录尾部);若用Insert关键字则在第99条与第100条记录间插入新纪录,并且记录指针停留在该记录处。
8 8122338 Unregistered / Unconfirmed GUEST, unregistred user! 2006-10-18 #9 我用的APPEND呀,重新运行程序,按照道理重新连接了数据库,应该添加在末尾的而不是当中
Q qqjm Unregistered / Unconfirmed GUEST, unregistred user! 2006-10-18 #10 ACCESS是这样的,他删除一条记录,不是真是的物理上的删除,只是在上面做了一个删除的标记,当有新的记录写进来的时候,就把那条记录写在那个已经标记了删除的位置。 不过增加一个索引应该可以解决这个问题。你可以在表中可以用作排序的字段加一个索引上去试试。
ACCESS是这样的,他删除一条记录,不是真是的物理上的删除,只是在上面做了一个删除的标记,当有新的记录写进来的时候,就把那条记录写在那个已经标记了删除的位置。 不过增加一个索引应该可以解决这个问题。你可以在表中可以用作排序的字段加一个索引上去试试。
8 8122338 Unregistered / Unconfirmed GUEST, unregistred user! 2006-10-18 #11 那要是有10000条记录,程序里把前5000条删除,然后在APPEND记录的话,那都是添在末尾的,不可能都是添在前5000条记录的位置吧(用DBGrid11看),这怎么解释呢?我怀疑是Delphi和WINDOWS的兼容性有问题,而且我发现ACCESS中的时间和DBGrid11中的时间在秒数上不完全一致(年月日小时分钟都对),有误差
那要是有10000条记录,程序里把前5000条删除,然后在APPEND记录的话,那都是添在末尾的,不可能都是添在前5000条记录的位置吧(用DBGrid11看),这怎么解释呢?我怀疑是Delphi和WINDOWS的兼容性有问题,而且我发现ACCESS中的时间和DBGrid11中的时间在秒数上不完全一致(年月日小时分钟都对),有误差