请问一下大家如何实现同时删除动作? |
答題得分者是:darnell
|
BIG-ROM
初階會員 發表:94 回覆:91 積分:37 註冊:2005-04-16 發送簡訊給我 |
请问如何实现同时删除动作?
下面程式码无法实现数据删除动作,但执行没有产生错误提示,请问如何才正确? ================================================================== procedure TForm6.SpeedButton4Click(Sender: TObject); var i:INTEGER; begin if messagedlg('你确定记录为[' DataModule2.JSYZLB.FieldByName('JSYXM').AsString ']需要删除?',mtinformation,[mbyes,mbno],0)=mryes then begin DeleteFile(ExtractFilePath(Application.ExeName) DataModule2.JSYZLB.FieldByName('JSYZP').AsString);//删除照片文件 //删除资料表3的相应资料 IF DataModule2.YWZZLB.FieldByName('YWID').AsString=DataModule2.JSYZLB.FieldByName('HYID').AsString Then begin DataModule2.YWZZLB.Active:=TRUE; for i:=1 to DataModule2.YWZZLB.RecordCount do DataModule2.YWZZLB.delete; end; //删除资料表2 的相应资料 IF DataModule2.YWMXZLB.FieldByName('YWID').AsString=DataModule2.JSYZLB.FieldByName('HYID').AsString Then begin DataModule2.YWMXZLB.Active:=TRUE; for i:=1 to DataModule2.YWMXZLB.RecordCount do DataModule2.YWMXZLB.delete; end; //删除资料表1 的相应资料 DataModule2.JSYZLB.Delete; end; end; 編輯記錄
BIG-ROM 重新編輯於 2008-12-11 18:41:13, 註解 無‧
|
darnell
版主 發表:25 回覆:103 積分:145 註冊:2003-03-04 發送簡訊給我 |
DataModule2.YWZZLB.Active:=TRUE; //這行搬到前面看看,還沒開啟怎麼做下面的比對動作呢?
删除资料表2 的相应资料改法一樣 IF DataModule2.YWZZLB.FieldByName('YWID').AsString=DataModule2.JSYZLB.FieldByName('HYID').AsString Then begin for i:=1 to DataModule2.YWZZLB.RecordCount do DataModule2.YWZZLB.delete; end; |
BIG-ROM
初階會員 發表:94 回覆:91 積分:37 註冊:2005-04-16 發送簡訊給我 |
|
darnell
版主 發表:25 回覆:103 積分:145 註冊:2003-03-04 發送簡訊給我 |
再將原本的
for i:=1 to DataModule2.YWZZLB.RecordCount do DataModule2.YWZZLB.delete; 改成這樣呢 DataModule2.YWZZLB.First; While not DataModule2.YWZZLB.eof then begin DataModule2.YWZZLB.delete; end; 另外用單步偵錯模式看看程式是否有進入 IF DataModule2.YWZZLB.FieldByName('YWID').AsString=DataModule2.JSYZLB.FieldByName('HYID').AsString Then ... 裡面有執行到哪邊 前面的active還是要搬過去前面 |
BIG-ROM
初階會員 發表:94 回覆:91 積分:37 註冊:2005-04-16 發送簡訊給我 |
|
darnell
版主 發表:25 回覆:103 積分:145 註冊:2003-03-04 發送簡訊給我 |
|
BIG-ROM
初階會員 發表:94 回覆:91 積分:37 註冊:2005-04-16 發送簡訊給我 |
darnell 感谢你的热心帮助!
经过逐步跟踪的方法,确实是有一资料表没有连接上,现在解决问题了,具体情况如下: ======================================== procedure TForm6.SpeedButton4Click(Sender: TObject); var i:INTEGER; begin if messagedlg('你确定记录为[' DataModule2.JSYZLB.FieldByName('JSYXM').AsString ']需要删除?',mtinformation,[mbyes,mbno],0)=mryes then BEGIN DeleteFile(ExtractFilePath(Application.ExeName) DataModule2.JSYZLB.FieldByName('JSYZP').AsString);//删除文件 //删除表3的相应资料 DataModule2.YWMXZLB2.Close; DataModule2.YWMXZLB2.SQL.Clear; DataModule2.YWMXZLB2.SQL.Add('Select * from YWMXZLB Where YWID="' DataModule2.JSYZLB.FieldByName('HYID').AsString '"ORDER BY ID DESC'); DataModule2.YWMXZLB2.Open; IF DataModule2.YWMXZLB2.FieldByName('YWID').AsString=DataModule2.JSYZLB.FieldByName('HYID').AsString Then begin for i:=1 to DataModule2.YWMXZLB2.RecordCount do DataModule2.YWMXZLB2.delete; end; //删除表2相应资料 DataModule2.YWZZLB2.Close; DataModule2.YWZZLB2.SQL.Clear; DataModule2.YWZZLB2.SQL.Add('Select * from YWZZLB Where YWID="' DataModule2.JSYZLB.FieldByName('HYID').AsString '"ORDER BY ID DESC'); DataModule2.YWZZLB2.Open; IF DataModule2.YWZZLB2.FieldByName('YWID').AsString=DataModule2.JSYZLB.FieldByName('HYID').AsString Then begin for i:=1 to DataModule2.YWZZLB2.RecordCount do DataModule2.YWZZLB2.delete; end; //删除表1相应资料 DataModule2.JSYZLB.Delete; END; end; ======================================================= 这样问题就完满解决了. |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |