我想往数据库的表中插入一条记录,但不是在最后一条记录后面插入,而是在指定的位置插入,请问应该怎么写?谢谢!

解决方案 »

  1.   

    你想在第N条记录后面插入新数据那就先把N条记录后面的数据id号(或类似)全部+1,为你的数据腾出空间来,然后再插入你想要插入的数据想要直接在指定位置插入数据,没有这样现成的方法,想象一下,如果数据库产品支持这种作法,那这种方法所带来的负担对于数据库来说将是多么的巨大,所以都只是支持在最后一条插入数据,貌似是这样的
      

  2.   

    方法是有的,其实这样做意义不大:你是将你现在的记录分成AB两部分,在AB之间实实在在地插一条记录进去:
    方法一:将B记录复制到另一张表,然后将B记录删除,然后插一条你要加的记录,然后再把B记录贴回;
    方法二:从最后一条记录开始,加一条空白记录.然后将最后一条复制到空白记录上,然后再将倒数第二条复制到倒数第一条,如此...直到把B记录执行完成,然后将B记录移动完成后空出来的位置UPDATE成你的记录;
    方法三:将所有的记录都另外编上号.做一个编号的字段.而这个编号的字段是个实数型,你只要最后贴上这条记录,把这条记录的编号搞得比A的最大的还大点,比B的最小的还小点就成成了.取出来的时候按这个编号的字段排序,这记录肯定就在中间了.
    不过说实在话,我们不知道你为什么要这么做,但是我们都觉得这样的意义不大.完全可以在取出的时候按某个特定字段或某种特别的方式排列.这记录就会变到中间去.你完全没必要硬要活生生地插入到中间去.
      

  3.   

    不应该这样做的,没有一个DBMS是保证记录A一定存在记录B之后的,你只能自己指定某个字段排序,并自行保证这些记录的顺序
      

  4.   

    先用TTable的Locate定位到当前记录,locate的用法可以查DELPHI HELP.比如你的表名为table1,这个时候只需要调用table1.insert(,,),然后再table1.post就可以了.insert的用法也可以在DELPHI HELP里面查到,写的很详细的.