救命!!解决即给分? 我用的是ADO,在DBGRID中显示数据后,我想在DBGRID中修改数据,但暂时不写回数据库,直到全部修改完之后,点积按扭时才写回数据库,怎么实现。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 用批量更新,打开用:with ADODataSet1 do begin CursorLocation := clUseClient; CursorType := ctStatic; LockType := ltBatchOptimistic; CommandType := cmdText; CommandText := 'SELECT * FROM Employee'; Open;end;提交时ADODataSet1.UpdateBatch(arCurrent); procedure TFrm_mod_cjsw.Button1Click(Sender: TObject);begin DataModule1.query1.Post;end; 建议你用StringGrid这样比较好控制。 ADODataSet1.UpdateBatch(arCurrent); -->ADODataSet1.UpdateBatch(arAll); 用DBGRID控件在编辑的时候,只要不移动纪录,在当前纪录编辑所有字段,只要你不post,那么不会写入数据库,所以该控件没办法实现你的要求。要实现,你可以用StringGrid,将所有有关数据读入,并且有个唯一的id标示,用循环语句,用“update”SQL语句更新纪录,根据条件ID=?,这样可实现你的要求 你可以用个临时库,将你的数据库表复制一份作为临时库,DBGrid与临时库相连,修改完成后用SQL语句将修改结果提交给数据库. 你的意思是同时几条还是只一条?是同时几条吧?这样用ADO好象没办法直接实现,用个CLIENTDATESET缓存一下试试吧! 谢谢各位,这个问题应该能解决了,还有一个是:DBGRID在FENJU这一字段上内容为空,我想在点积事件中实现填充所有的这一列,内容根据该条记录的DIAN字段填写不同的值,谢谢!! 用缓存提交啊,将ADO的lockType设置成ltBatchOptimistic。然后用ADODataSet1.UpdateBatch提交,用ADODataSet1.CancelBatch取消。 谢谢各位,这个问题应该能解决了,还有一个是:DBGRID在FENJU这一字段上内容为空,我想在点积事件中实现填充所有的这一列,内容根据该条记录的DIAN字段填写不同的值,谢谢!! 这不是很简单吗?在点击事件中写一段程序:首先移到首记录,然后做循环从首记录移到末尾,每次循环根据DIAN的值计算FENJU值,循环结束最后提交。(最好用事务处理) 用Sql语句解决啦,否则就楼上的 如何实现程序运行后缩小到托盘? LISTBOX问题 请教数据格式转换的问题 如何从一个数据库的一张表中查询一些字段,写入另外一个数据库的一张表中? TClientDataset能转换成_RecordSet类型么!请求帮助。 DateTimePicker控件的时间格式 请教pascal中的静态方法可不可以覆盖? 哪里有Delphi 6的SP2下载? 请问想要截获word的保存动作该如何实现? 怎样才能使Dbgrid中的记录不按照关键字重新排序?(不要闪动) 6.0合7.0有很大的区别吗?我初学,应该学习那个版本 Quickreport的打印预览问题
打开用:
with ADODataSet1 do begin
CursorLocation := clUseClient;
CursorType := ctStatic;
LockType := ltBatchOptimistic;
CommandType := cmdText;
CommandText := 'SELECT * FROM Employee';
Open;
end;提交时
ADODataSet1.UpdateBatch(arCurrent);
begin
DataModule1.query1.Post;
end;
要实现,你可以用StringGrid,将所有有关数据读入,并且有个唯一的id标示,用循环语句,用“update”SQL语句更新纪录,根据条件ID=?,这样可实现你的要求
还有一个是:DBGRID在FENJU这一字段上内容为空,我想在点积事件中实现填充所有的这一列,内容根据该条记录的DIAN字段填写不同的值,谢谢!!
,将ADO的lockType设置成ltBatchOptimistic。然后用
ADODataSet1.UpdateBatch提交,用ADODataSet1.CancelBatch取消。
还有一个是:DBGRID在FENJU这一字段上内容为空,我想在点积事件中实现填充所有的这一列,内容根据该条记录的DIAN字段填写不同的值,谢谢!!