请大家帮我分析一下代码
秋天之落叶 2019-08-27 10:42:01 我有一个 基本信息表,一个 监督明细表
在一个功能模块中,查询 监督明细表,选择行记录,然后删除,不知道为什么,删除监督明细表记录后,竟然同时删除了基本信息表的一行记录,该行记录和 监督明细表 的关系是:监督明细表 中的 检查人 是 基本信息表 的一条基本信息记录。
我仔细的检查了两个表之间设置,没有关联表和语句存在,查询的ADOQ监督和DBGridEh16也是监督明细表专用的,基本信息表使用ADOQ信息和DBGridEh1,而且两个功能模块没有任何关联。
我也仔细的检查了语句,和网上的语句对了一下,没什么问题。
这是一个非常奇怪的问题,两个表的记录还能有什么方法关联到一块删除记录呢?请大家帮我分析一下。
procedure TFormMain.Button45Click(Sender: TObject);
var
i: Integer;
begin
if (DMADO.ADOQ监督.IsEmpty) or not(DMADO.ADOQ监督.Active) or (DMADO.ADOQ监督.RecordCount = 0) or (DBGridEh16.SelectedRows.count = 0) then
Exit;
for i := DBGridEh16.SelectedRows.count - 1 downto 0 do
begin
DMADO.ADOQ监督.GotoBookmark(DBGridEh16.SelectedRows.Items[i]);
if (DMADO.ADOQ监督.FieldByName('完成时间').AsString <> '') then
begin
if qzw = '员工' then //操作人的全局变量
begin
ShowMessage('选择的记录中包括已经完成的记录,组长及以上权限可删除!');
Exit;
end
else if Application.MessageBox('选择的记录中包括已经完成的记录,确认删除选定的记录吗?', '提示', MB_OKCANCEL + MB_ICONQUESTION) = IDOK then
begin
DMADO.ADOQ监督.Delete; //(换成DBGridEh16.SelectedRows.Delete也是同样的问题)
end;
end
else if Application.MessageBox('确认删除选定的记录吗?', '提示', MB_OKCANCEL + MB_ICONQUESTION) = IDOK then
DMADO.ADOQ监督.Delete;
end;
end;