ADO连MSSQL2000
我把ADOTABLE 和 DATABASE全放在了数据模块中,在处理ADOTableBeforeDelete(DataSet: TDataSet)过程里加入MessageBox,但不能通过.如果把ADOTABLE放在窗体中,ADOTableBeforeDelete里的MessageBox就能通过.我是新手,不太懂,帮忙.
源码如下:
unit data;interfaceuses
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;implementationuses 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.
我把ADOTABLE 和 DATABASE全放在了数据模块中,在处理ADOTableBeforeDelete(DataSet: TDataSet)过程里加入MessageBox,但不能通过.如果把ADOTABLE放在窗体中,ADOTableBeforeDelete里的MessageBox就能通过.我是新手,不太懂,帮忙.
源码如下:
unit data;interfaceuses
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;implementationuses 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.
解决方案 »
- 关于delphi中数据库ADOquery存储的问题
- 送分100分谁知道现在流行的软件有哪些用delphi,哪些用vc++,哪些用vb,用哪种多开发的多????到底谁功能强大~!!!
- Delphi单元文件下部的中间有"Code"和"Diagram"两页, 哪个Diagram到底有啥用啊?
- 请问那位仁兄有类似系统自带的画图程序的源代码,麻烦请给小弟一份,小弟现在急需,最好源代码功能能比自带画图程序好一点,没有的话类似
- 关于Flatstyle的问题!
- 多进程访问---?
- 急救!有关类的继承问题。
- 请教一下开发监视器系统的原理?
- winsocket为什么连目标机器总是不通,请帮我看看程序有什么问题吗?在线等待!
- 请问在COM的接口函数中如何传递一个对象?如test(abutton:Tbutton):int ??
- 怎样能使导入的速度变快?
- 请教Form的释放问题
application.messagebox(PChar(dStr),'警告',MB_YESNO or MB_ICONWARNING);
Dialogs or QDialogs可以Application.MessageBox();
再有第一个参数可以去掉
再有第一个参数去掉了.
就是不知道为什么?30分钟后结帖.分少了点,谢谢大家了~~~~uses
SysUtils, Classes, DB, ADODB,Forms,Dialogs,Messages,Windows;
procedure TDM1.ADOTable1BeforeDelete(DataSet: TDataSet);
var
dStr:String;
begin
dStr:='确定要删除这条记录吗?';
if application.MessageBox(PChar(dStr),'警告',MB_YESNO or MB_ICONWARNING)=IDNO then Abort;
end;
Handle其实可以是0的
if MessageBox(0,PChar(dStr),'警告',MB_YESNO or MB_ICONWARNING)=IDNO thenhttp://lysoft.7u7.net