用 try .....except来解决可去掉错误信息,不过有一点你要注意因为你设的字段不能为空必须在DBgrid中的onexit事件判断是否DBGRID中对应于不能为空的字段为空,还有一点如果你在DBGRID中已经删除了对应于不能为空的那个字段的数据,在移动"↑"或"↓"键时它会自动进行SAVE那又会出现错误的信息。
解决方案 »
- 数据库连接问题。。。。
- 如何判断D7连接SQLSERVER数据库是否成功?也就是SQL服务器是否开启和网络是否连接,使用ADO连接
- tchart中如何在程序中改变lineseries线条粗细?
- 周末散分,回复即有分:无忧POS超市网 http://www.51pos.com
- 如何用编程动态建立ODBC数据源
- —拜师—拜师—拜师— 高手请进
- windows2000也淘汰??
- 菜鸟问dbgrid的问题?(在线等待)
- 送分 100
- 请问如果在程序中实现对一些文件的压缩,详情请看:
- 老问题:两台装有MODERM的机器为何不能通信(是指目录文件共享),我的步骤是...,请指导??
- 有办法打印dbgrid中的记录数据吗?
if Dateset.FieldByName('XX').IsNull then
begin
Application.MessageBox('XX的值不能为空!','警告',MB_Ok+MB_IconWarning) ;
Abort ;
end;
没有代码无法用try...except!
procedure HandleException(Sender: TObject; E: Exception);
end;TMyExeception.HandleException(Sender: TObject; E: Exception);
begin
//your code
.
.
end;TForm1.FormaCreate(Sender: TObject)
begin
Application.Onexception=MyException.HandleException;
.
.
end;
现在给一个完整点的例子
program Project1;uses
SysUtils,//其中包含Exception 类的声明
Forms,
Unit1 in 'Unit1.pas' {Form1};type
THG=class//声明类
public
procedure HP(Sender:TObject;Einstance:Exception);//声明方法
end; procedure THG.HP(Sender:TObject;Einstance:Exception);
begin
//加入自己的异常处理方案
end;var
HG:THG; //声明全局变量
{$R *.RES}begin
HG:=THG.Create;
Application.OnException:=HG.HP;
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.Run;
end.注:1、这里是全局异常处理。
2、在缺省异常中如OnException中无代码,就调用ShowException,其提供缺省异常处理。
3、你的例子运行 Post Database 时弹出的对话框就是ShowException的杰作。
4、详细运用可参考 Delphi Help 的 Exception 说明。