当在DBGrid中输入数据时,用向上,向下箭头也能够进行保存,这没错吧,但是如果在新增的一行里从来没有输入数据的话,用向上箭头将光标往上移一行,就不会出错,但如果在这一行输入过数据,然后,再向上移光标,那么,此时如果主键对应的列是空的话就会报错,而且会退出系统,我要做的是将这个错误拦住,然后给用户一个提示,同时,不退出系统,让光标仍停在原来的单元格。
不知道我说清楚了没有?
请大家帮帮我,我已被这个折磨很久了,找的一些资料好象也没有解决。先谢了。
不知道我说清楚了没有?
请大家帮帮我,我已被这个折磨很久了,找的一些资料好象也没有解决。先谢了。
解决方案 »
- QuickRep 预览时可以显示 但是不要打印出来
- delphi中用query添加sql实现order语句问题!—急
- dbgrideh 中的内容怎样在fastreport3.0中打印
- 我用ToolBar做MDI程序的主菜单,为何在子窗口菜单不能加到主窗口的ToolBar菜单里呢? 我以做了,GroupIndex设置呢.为什么还不对?
- 新创窗体那个"关闭按钮"它的代码是?
- 十万火急,这是什么,求解决之道
- 怎样通过编程修改ODBC的配置????
- 一个很严重的问题
- delphi 一个很简单的问题?
- 如何动态创建播放器实现四画面,九画面,并且判断选种的是那个画面。
- 高分求解FastReports问题
- /////////这样建临时表怎么建不起来,也不出错?????
Table1.Append;
...........
Table1.Post;
except
Table1.Cancel
ShowMessage('你的错误信息');
end;
beginend;procedure TForm1.ADODataSet1PostError(DataSet: TDataSet; E: EDatabaseError;
var Action: TDataAction);
beginend;
procedure TForm1.ADODataSet1BeforePost(DataSet: TDataSet);
begin
if adoquery1.filedbyname('字段名').asstring='' then
begin
showmessage('主键值不能为空!');
abort;
end
else
adoquery1.post;
end;
begin
if ADOQuery1.FieldByName('主键').AsString = '' then
Raise Exception.Create('主键不能为空!')
end;
不过用dbgird录入数据的话有时候可能造成数据的丢失。慎用其作为数据录入的窗口
别的方法我没有去试(暂进没有时间),但coffee36(咖啡)的方法我已经试过了,很好,现在就是用这段代码。