最有两个数据表(使用ADOTable连接),其中表一为部门表(字段为ID,DEPT)表二为组别表(字段为ID,DEPT_ID,GROUNT),表二中DEPT_ID为外部关键字和表一中的ID相关联。现表一中有记录001,行政部,表二中有其子项,101,行政一部,102,行政二部,当删除表一的记录001时出错,主要原因题表二有相关联的数据,现要在删除表一记录时判断表二中是否有其子项,应该如何判断?有一窗体上有个删除按键,在删除事件中我用 DM1.DEPT.Delete;在数据集DEPT的BeforeDelete中我用了如下代码,可是出错!procedure TDM1.DEPTBeforeDelete(DataSet: TDataSet);
begin
with TADOQuery.Create(self) do
try
connection:=ADOconnection1;
sql.Clear;
Sql.Add('Select * from GROUP_CODE where DEPT_ID=:number');
Parameters[0].Value:=DEPT.FieldByName('ID').Value;
Open;
if RecordCount>0 then
begin
ShowMessage('不能删除');//如果换成MessageBox怎么处理呢?在窗体中可以,在这里不行。
Free;
Abort;
end;
finally
Free;
end;
end;
begin
with TADOQuery.Create(self) do
try
connection:=ADOconnection1;
sql.Clear;
Sql.Add('Select * from GROUP_CODE where DEPT_ID=:number');
Parameters[0].Value:=DEPT.FieldByName('ID').Value;
Open;
if RecordCount>0 then
begin
ShowMessage('不能删除');//如果换成MessageBox怎么处理呢?在窗体中可以,在这里不行。
Free;
Abort;
end;
finally
Free;
end;
end;
解决方案 »
- delphi调用新大陆数据采集器
- DBGridEH的第一行过滤功能,为什么我的只显示一个输入框,而不是下拉框呀,过滤功能能够执行
- 求助:insufficient disk space
- shockwaveflash播放flash变化大小的问题!!!(急)
- 失业中
- 如何解決"Read failure"的問題﹖
- 关于word二次开发的问题,绝对送分阿,分值可以开贴再加!!!!绝对有信用!
- 有谁遇到过这种问题,帮帮我好么
- setsystemtime?急
- 在win2000Server下,如何设置成Internet代理?
- 我要写个安装程序,如何使用进度条?
- 怎样屏蔽TAB键,怎么样锁定键盘!!!在线等待!!!!
然后可以这样子用啦。
Var MSG,CaptionStr:String;
MessageBox(0,pchar(MSG),CaptionStr,MB_OK+MB_ICONinformation);
其中MSG和CaptionStr可以自己定义值。OK~就是这样子使用的。