在主要细节关系中
procedure TDataModule.TABLE1AfterScroll(DataSet: TDataSet);
begin
if TABLE1.FieldByName('UNIT_ID').AsString <> '' then
begin
QUERY1.Close;
QUERY1.SQL.Clear;
QUERY1.SQL.Text:= 'select * from TABLE2 where UNIT_ID = ' +
TABLE1.FieldByName('UNIT_ID').AsString;
QUERY1.Open;
end;
如何确保在编辑(然后保存)QUERY1
结果时,有人不会输入不存在的UNIT_ID
?
我希望UNIT_ID
能够更改,但我想确保有人不会输入不存在的UNIT_ID
。
答案 0 :(得分:0)
AfterScroll不是正确的事件使用beforepost而是这样:
procedure TDataModule.TABLE1BeforePost(DataSet: TDataSet);
begin
if TABLE1.FieldByName('UNIT_ID').AsString <> '' then
begin
QUERY1.Close;
QUERY1.SQL.Text:= 'select UNIT_ID from TABLE2 where UNIT_ID = ' +
TABLE1.FieldByName('UNIT_ID').AsString;
QUERY1.Open;
if QUERY1.REcordcount=0 then ABORT; //so if there not a such
// unit_id just don't save it
end;
end;