我在数据库中有很多表,每个表中(它自己的DataSet是连接的)都有相同的字段,例如:' USER_ID '和' DEPARTMENT_ID ',还有一个' ARCHIVE '字段,不是在所有表格中。
在程序中,有几个模块,并不是所有的DataSet都在同一个表单上。每当我在任何DataSet中编辑记录时,我都必须不断填写“ USER_ID ”和“ DEPARTMENT_ID ”、“ ARCHIVE ”。
为此,我在主模块中创建了一个单独的过程,我用任何 DataSet 的每个 Post 调用它:
procedure TFMain.SET_IDENTIFICATOR(ADataSet: TIBDataSet);
begin
if (ADataSet <> ibdsContractPays)
or ((FDeviceNC <> nil)
and (ADataSet <> FDeviceNC.ibdsNC)) then
ADataSet.FieldByName('ARCHIVE').AsInteger := 1;
ADataSet.FieldByName('USER_ID').AsInteger := Pu_UserIDEntry;
ADataSet.FieldByName('DEPARTMENT_ID').AsInteger := Pu_DepartmentID_Entry;
end;
一切都很好,直到其中一个DataSet ( ibdsNC ) 被捕获,它不在主窗体上,而是在辅助FDeviceNC上,并且在没有“ ARCHIVE ”字段的表中。我无法正确编写“ if
”
块。
事实证明,它要么有效,要么无效(当然,对于每个 NOT 操作,它都会写“
未找到字段“存档”。
»
每日提示:
TDataSet使用TDataModule.