全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1121
推到 Plurk!
推到 Facebook!

請問如何將Join的資料一併刪除??

尚未結案
markpeng73
一般會員


發表:10
回覆:14
積分:4
註冊:2005-01-26

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-02-20 12:06:31 IP:218.165.xxx.xxx 未訂閱
請問各位大大,要如何將4個資料表中相同客戶的相關資料乾淨地刪除?? 我的程式連到Access資料庫,裡面有四個資料表,其一為Master,另外三個 為其Detail,我該如何在刪除Master的某一筆資料後,將其相關的Detail也 一併刪除?? 之前聽人說如果有Join的話,會自動一併刪除,但是我試過了, 並不會自動刪除@@......... 我自己嘗試使用以下的方式: void __fastcall TCDB::BitBtn4Click(TObject *Sender) { int value; value = Application->MessageBox("您確定要刪除該筆資 料? ", "警告:刪除該筆資料 ", 1); if( value == 1 ) { CTable->Delete(); if( CEatDB->CEatTable->FindKey(new TVarRec(CID- >Value), 0) ) CEatDB->CEatTable->Delete(); if( CLiveDB->CLiveTable->FindKey(new TVarRec(CID- >Value), 0) ) CLiveDB->CLiveTable->Delete(); if( CHealDB->CHealTable->FindKey(new TVarRec(CID- >Value), 0) ) CHealDB->CHealTable->Delete(); } } 但是很奇怪,compile沒出錯,但是run的時候卻還是一樣只刪除了 Master的資料@@ 為何其他3個程式碼都寫的卻起不了作用??? 煩請各位替我解答,謝謝!
海星
高階會員


發表:41
回覆:217
積分:106
註冊:2003-01-09

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-02-20 23:26:45 IP:59.104.xxx.xxx 未訂閱
在 TQuery 物件的SQL內寫 "delete from XXX where CID = :ID"; 要刪除 Master前,先執行上面的 SQL 語法,再刪除該筆Master記錄。 效率會比你原來的程式碼好太多了..我看你原來的程式碼還用到 FindKey, 還要一筆一筆找.真的多了很多步驟且速度很慢。 而且你那樣根本就刪不乾淨,頂多就只能刪除一筆,不會全部的 Detail都一併刪除。 以上是假設你會使用 TQuery物件,如果不會,其實也很簡單,就下面二行而已. Query1->ParamByName("ID")->AsInteger = XX; // Master的ID Query1->ExecSQL();
markpeng73
一般會員


發表:10
回覆:14
積分:4
註冊:2005-01-26

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-02-21 00:56:45 IP:218.165.xxx.xxx 未訂閱
感謝海星你的指教Orz....初學的我還是只會用笨方法@@ 我Query會用,但是不太熟,所以我是用Table來做,Table的效率跟 Query真的差很多嗎?? "要刪除 Master前,先執行上面的 SQL 語法,再刪除該筆Master記錄。" 想請問一下,既然Query的SQL已經寫了delete的指令,那為何之後還要再 多寫一個刪除Master的code? 執行delete的SQL語法不是就會刪除嗎???? 謝謝你的解答~
海星
高階會員


發表:41
回覆:217
積分:106
註冊:2003-01-09

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-02-21 09:33:21 IP:211.20.xxx.xxx 未訂閱
引言: 感謝海星你的指教Orz....初學的我還是只會用笨方法@@ 我Query會用,但是不太熟,所以我是用Table來做,Table的效率跟 Query真的差很多嗎?? "要刪除 Master前,先執行上面的 SQL 語法,再刪除該筆Master記錄。" 想請問一下,既然Query的SQL已經寫了delete的指令,那為何之後還要再 多寫一個刪除Master的code? 執行delete的SQL語法不是就會刪除嗎???? 謝謝你的解答~
那個SQL語法只有單純的刪除 Detail 的資料,語法描述有delete 到 master 的資料的程式碼嗎??? 所以刪除過 Deltail 資料後,當然還要再下一次 delete master資料的指令。
系統時間:2024-04-19 12:32:54
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!