MessageBox()在数据模块中不能通过.
ADO连MSSQL2000
我把ADOTABLE 和 DATABASE全放在了数据模块中,在处理ADOTableBeforeDelete(DataSet: TDataSet)过程里加入MessageBox,但不能通过.如果把ADOTABLE放在窗体中,ADOTableBeforeDelete里的MessageBox就能通过.我是新手,不太懂,帮忙.
源码如下:
unit data;
interface
uses
SysUtils, Classes, DB, ADODB;
type
TDM1 = class(TDataModule)
ADOConnection1: TADOConnection;
ADOTable1: TADOTable;
DataSource1: TDataSource;
ADOTable2: TADOTable;
DataSource2: TDataSource;
zhongghdatasource: TDataSource;
zuzhiDataSource: TDataSource;
zhonggh: TADOTable;
zuzhi: TADOTable;
hangye: TADOTable;
hangyeSource: TDataSource;
juzhuxianshiqu: TADOTable;
juzhuSource: TDataSource;
procedure DataSource2DataChange(Sender: TObject; Field: TField);
procedure DataSource2StateChange(Sender: TObject);
procedure DataSource1DataChange(Sender: TObject; Field: TField);
procedure DataSource1StateChange(Sender: TObject);
procedure ADOTable1BeforeDelete(DataSet: TDataSet);
private
{ Private declarations }
public
{ Public declarations }
end;
var
DM1: TDM1;
implementation
uses insert;
{$R *.dfm}
procedure TDM1.DataSource2DataChange(Sender: TObject; Field: TField);
begin
Finsert.Label25.Caption:='当前记录:'+IntToStr(DataSource2.DataSet.RecNo);
Finsert.Label42.Caption:='记录总数:'+IntToStr(DataSource2.DataSet.RecordCount);
Finsert.Label43.Caption:=DateToStr(Date);
end;
procedure TDM1.DataSource2StateChange(Sender: TObject);
begin
case DataSource2.State of
dsBrowse:Finsert.label44.Caption:='[浏览模式]';
dsEdit:Finsert.label44.Caption:='[修改模式]';
dsInsert:Finsert.label44.Caption:='[插入模式]';
else Finsert.label44.Caption:='[其他模式]';
end;
end;
procedure TDM1.DataSource1DataChange(Sender: TObject; Field: TField);
begin
Finsert.Label41.Caption:='当前记录:'+IntToStr(DataSource1.DataSet.RecNo);
Finsert.Label45.Caption:='记录总数:'+IntToStr(DataSource1.DataSet.RecordCount);
Finsert.Label46.Caption:=DateToStr(Date);
end;
procedure TDM1.DataSource1StateChange(Sender: TObject);
begin
case DataSource1.State of
dsBrowse:Finsert.label47.Caption:='[浏览模式]';
dsEdit:Finsert.label47.Caption:='[修改模式]';
dsInsert:Finsert.label47.Caption:='[插入模式]';
else Finsert.label47.Caption:='[其他模式]';
end;
end;
procedure TDM1.ADOTable1BeforeDelete(DataSet: TDataSet);
var
dStr:String;
begin
dStr:='确定要删除这条记录吗?';
if MessageBox(Handle,PChar(dStr),'警告',MB_YESNO or MB_ICONWARNING)=IDNO then Abort;
// ~~~~~~~~~~//就是这里出错!
end;
end.