16,749
社区成员
发帖
与我相关
我的任务
分享
SQL.Text:='DELETE FROM Dosage WHERE Piece IN (SELECT ID FROM Piece WHERE Produce =' + IntToStr(PID)+')';
Close;
SQL.Clear;
SQL.Text := 'SELECT ID AS ID FROM Piece WHERE Produce =' + IntToStr(PID);
Open;
First;
while not QryYS.Eof do //这里以未到记录尽头为条件进行循环
begin
PIID := FieldByName('ID').AsInteger;
Next;
if PIID > 0 then
begin
//像楼上朋友所说,这里应该使用另外一个数据集!!
Close;
SQL.Clear;
SQL.Text := 'DELETE FROM Dosage WHERE Piece =' + IntToStr(PIID);
ExecSQL;//这句没有记录返回,从而造成循环条件不再成立!
end;
end;