我現在只單獨刪除從表的記錄,比如從表有5條記錄,當記錄在第3條時點擊刪除,原先是第4條的變成第3條,第5條的變成第4條,依此類推!如從表的記錄全刪了,則主表也應刪除!並且主表記錄下移一條!
現在的出現的問題是:點擊刪除後,從表當前記錄能刪除,但主表會下移,不符合要求。
我想請教下刪除後序號重排的問題!
請多多指教!!!
現在的出現的問題是:點擊刪除後,從表當前記錄能刪除,但主表會下移,不符合要求。
我想請教下刪除後序號重排的問題!
請多多指教!!!
// 你从表的主键 应该有两个吧 <一个是 主表的主键,另一个是从表自己的主键>用做联合主键
你要解决的是Dbgrid/还是stringgrid???
dbg根本没有排序问题呀..我怀疑你的就是主键的问题 可能是从表只有一个主键 一删除 就把从表的记录全部删除了 自然主表记录也被删了<按照你的要求处理>
從表主鍵:FNO+FSN(序號)
按FNO連接,DBGRID連接從表,我的意思是:1.當刪除從表的記錄時,後面的序號能替換掉刪除記錄的序號(起到序號重排的作用)。2.與主表單號相連的從表的記錄如沒全部刪除,則從表下移或上移,否則主表記錄下移。
現在的問題是:刪除從表的當前記錄後,主表鍵下移了,再上移也找不到主表的記錄,但重新進入後還是會有。還有我應怎樣判斷從表的記錄沒有了,序號重排的功能能給點提示我碼?
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 主表主键
可我用的是bde table,能不能直接用TABLE.DELETE,TABLE.EDIT,TABLE.FindKEY等方式。
再說用SQL會不會造成速度很慢呀!有勞費心,期待解答!!!