我在DBGrid1中输入数据后,如果不移到下一行则保存时该条记录无法保存,只有移到下一行时才能保存,为什么?
解决方案 »
- 怎么实现这样record类型的定义?
- 怎么在程序中控制dbgrid是否选中整行?
- delphi 中对 ‘年-月’进行加减操作
- XPMENU在DELPHI2005中可以安装使用吗?
- 简单的问题
- 如何在SQL查询中加入一个序号字段
- Delphi7实现远程监控
- 也算新年送分,但是有点技术问题要请教:sybase公司的power designer如何与Delphi有机结合?
- 哪里有比较好的delphi电子书下载(当然是免费的)??
- 请教delphi 调用mysql存储过程的问题
- 怎么能让窗体显示在最前面?
- 用MediaPlayer组件播放声音,声音文件的路径如何动态处理(要播放的声音是固定的,开发与实际运行时路径可能不同)?
唉,让你去写东东,真是对业界的一种侮辱(有点过了,但我个人认为也是一种事实)你定义个快捷吧,如用户按Ctrl+Enter或Enter或其它后就执行保存动作用过QQ吧,那么是不是我每输个字上去它就发送一次呢,当然不是,而是要进行提交(按Ctrl+Enter发送) 你的问题也一样,就看你怎么去写
------------------------------------------------------
如果楼主是担心没有移到下一条,用户就把这个form关了而使数据没有保存的话,可以这样解决在form的OnClose事件中写:if AdoQuery1.State in [dsEdit,dsInsert] then AdoQuery1.Post;
你要是不信 去看看sql server 他也是要移到下一行才保存的
注意是“ 可移”, 如果不可移(post出错),即使点了保存按扭 也会因为事务回滚 而没保存
B4你!别人问的问题你愿意回答就回答,水平如何你没资格去评论!楼主你可以自己多做几个试验看看就清楚了,移动到下一行其实是系统自动保存过了,那时候你已经不需要再去做保存的工作。可以在AdoQuery的BeforePost 和AfterPost事件看看。
关键是我的有些数据不是在DBGrid中的,而是在另外的一个文本框中,所以在保存时首先把DBGrid中的保存,然后再把上面的一些文本框中的数据存到表中.
DBGrid1.DataSource.DataSet.Post;
就可以了
如在DBGrid1BeforePost中
条件判断
if 条件1 then
begin
DataSet.cancel;
exit;
end;
if 条件2 then
begin
DataSet.cancel;
exit;
end;....DataSet.FieldByName('Memo').AsString := Memo1.text;