應該是比較簡單的問題(50分)

  • 主题发起人 主题发起人 fluganto
  • 开始时间 开始时间
F

fluganto

Unregistered / Unconfirmed
GUEST, unregistred user!
各位大俠,最近使用AdoTable遇到一個問題:先往AdoTable時增加一筆記錄,
AdoTable1.insert;
AdoTable1.fieldbynaem["item_no"].asstring:='A'
AdoTable1.fieldbynaem["price"].asFloat:=1;
AdoTable1.fieldbynaem["qty"].asFloat:=0;
AdoTable1.post;
然後更改 qty(使用 DBEDit),在DBEdit的onKeyPress寫了事件,
if key=char(13) then
.
.
AdoTable1.Edit;
AdoTable1.Post; (這一句出了問題?!)
卻老是提示有問題:
Row cannot be located for updating.Some values may have been changed
since it was last read.

不知道問題是出在哪裡?
哪位可以幫幫我?
謝謝!!



 
是先保存后,才进行POST
在EDIT状态下不能进行POST
 
不好意思,不太明白,
保存不是用Post,還可以用什麼?

 
AdoTable1.Edit;
AdoTable1.fieldbyname["amount"].asFloat:=AdoTable1.fieldbyname["qty"].asFloat*AdoTable1.fieldbyname["price"].asFloat
AdoTable1.Post;
隻是為了中間那一句,但不論加與不加都會出提示.
 
if key=char(13) then
.
.
AdoTable1.Edit;
AdoTable1.Post; (這一句出了問題?!)

这部分中,
把AdoTable1.Edit写在前面,试试
 
應該是有某些字段在Post前沒有寫入數據,或者是其他控件數據的問題,程序本身應該沒有
什麼問題.我以前遇到過用DataTimePicker也出現過這類問題.
 
fluganto兄弟,我也遇到同样的问题:
procedure TForm1.Button2Click(Sender: TObject);
begin
//Form1.ADOQuery1.open;
Form1.ADODataset1.Last;
//Form1.ADOQuery1.Insert;
Form1.ADOQuery1.append;
showmessage('正常');
Form1.ADODataset1.post;
showmessage('ok');
//Form1.ADOQuery1.Refresh;
end;
只要使用post,refresh,appand方法都会提示Some values may (值太小)或者 ‘ADODataSet1: 数据集不在修改或插入修改模式.’总之数据集无法写入数据,
也试过改用ADOQuery,就是没法把数据写入数据库。(我用的是Access+ado)
如果fluganto兄弟解决了这个问题请告诉小弟一声(哎!正为此烦恼!)
 
我的问题解决,主要是添加数据时没有把主键值添进去。所以老提示Row cannot be located for updating.我化了100分才把问题解决。
 
后退
顶部