在一个数据表中,有一类的数据,例如:
class    item  name
1          1    sd   
1      2   ssd
1     3    d
2     1   yy
2     2   tt
2     3   rr
问题是同一类class的数据,item需要在添加的时候,自动加1,删除记录的时候,item后的item数据会自动减1,如何做?

解决方案 »

  1.   

    SQL Server用臨時表可以實現
      

  2.   

    一般的處理原則是找到一定條件下的最大item值,然後加1.
    SELECT MAX(item) AS MAXCODE FROM THISTABLE WHERE class='2';
    如果item 為整數: 
    NewItem:=TheDataSet.FieldByname('MAXCODE').AsInteger+1;
    如果item 為字符,要寫另一個函數來增加ASCII碼.
      

  3.   

    这个只有自己编程解决,如上楼自动增加,自动减一就比较困难了,如果删除的不是同类中最后的一条记录,你必须对同类中的ITem从新排序,也就是同类中删除的后面的记录的item都要加一。
      

  4.   

    这是物料编码的自动编码吧(类似)
    这样做好像有问题吧,假设已存在ITEM:001,002,003,004,005
    如要删除003所有后面编码都要自动减一,以填充空号
    那这些编码岂非随时都在变,
    这样的编码有意义么?
      

  5.   

    +1容易实现  -1有点困难
    用query取出任何一个item 
    然后比较大小 
    query.next
    取出最大 max 
    新item := max + 1