我在DBGrid1中输入数据后,如果不移到下一行则保存时该条记录无法保存,只有移到下一行时才能保存,为什么?
解决方案 »
- XLSReadWriteII 控件怎么用!
- DBGrid实时显示数据
- 用eXeScope 知道了 编号 怎么读取.dll OR .exe里的资源
- 在delphi 中怎样作一个分数比较曲线图表?
- stringlist类不能打开dll文件,如何象uedit那样打开dll ?
- 关于成长
- Delphi 数据较多,上传服务器时,出现数据紊乱和内存地址寻找错误
- 请问各位高手,谁知道怎么制作安装文件,就是一个exe,然后这个exe包含多个文件在里面,也就是说,用stream把他们放在setup.exe的后面,然后读出来的时候找好文件流的位置.最好有源码!不胜感激!
- 大家可否聊聊广州比较黑的IT公司
- 关于数据库应用程序的安装
- 怎么能让窗体显示在最前面?
- 用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;