我現在只單獨刪除從表的記錄,比如從表有5條記錄,當記錄在第3條時點擊刪除,原先是第4條的變成第3條,第5條的變成第4條,依此類推!如從表的記錄全刪了,則主表也應刪除!並且主表記錄下移一條!
現在的出現的問題是:點擊刪除後,從表當前記錄能刪除,但主表會下移,不符合要求。
我想請教下刪除後序號重排的問題!
請多多指教!!!

解决方案 »

  1.   

    點擊刪除後,從表當前記錄能刪除,但主表會下移,不符合要求。
    // 你从表的主键 应该有两个吧 <一个是 主表的主键,另一个是从表自己的主键>用做联合主键
    你要解决的是Dbgrid/还是stringgrid???
    dbg根本没有排序问题呀..我怀疑你的就是主键的问题 可能是从表只有一个主键 一删除 就把从表的记录全部删除了 自然主表记录也被删了<按照你的要求处理>
      

  2.   

    主表主鍵:FNO(單號)
    從表主鍵:FNO+FSN(序號)
    按FNO連接,DBGRID連接從表,我的意思是:1.當刪除從表的記錄時,後面的序號能替換掉刪除記錄的序號(起到序號重排的作用)。2.與主表單號相連的從表的記錄如沒全部刪除,則從表下移或上移,否則主表記錄下移。
    現在的問題是:刪除從表的當前記錄後,主表鍵下移了,再上移也找不到主表的記錄,但重新進入後還是會有。還有我應怎樣判斷從表的記錄沒有了,序號重排的功能能給點提示我碼?
      

  3.   

    現在的問題是:刪除從表的當前記錄後,主表鍵下移了,再上移也找不到主表的記錄,但重新進入後還是會有。還有我應怎樣判斷從表的記錄沒有了,序號重排的功能能給點提示我碼?// 很简单的哦 给你基本的SQL语句...
    1. 删除从表记录
    delete from yourtable where fno = :fno and fsn = :fsn;2. 更新符号重排
    update yourtable set fsn = fsn - 1 
    where fno = :fno and fsn > :fsn // :fno 传入主表主键 :fsn传入被删除的从表记录的序号3. 判断是否有数据 
    selete * from yourtable  where fno = :fno // 
    或者 SQL SRV selete top 1 from yourtable  where fno = :fno // fno 主表主键
      

  4.   

    謝謝 beyondtkl(大龙驹宣言:抵制日货,从我做起) 
    可我用的是bde table,能不能直接用TABLE.DELETE,TABLE.EDIT,TABLE.FindKEY等方式。
    再說用SQL會不會造成速度很慢呀!有勞費心,期待解答!!!