delphi 中出現dataset not in edit or insert mode的問題


self.ADOQuery2.Edit;
self.ADOQuery2.First;
while not self.ADOQuery2.Eof do
begin
self.ADOQuery2.FieldByName('單價').Value:=roundto(self.ADOQuery2.FieldByName('單價').Value,-2);
self.ADOQuery2.Next;
end;
self.ADOQuery2.Post;
這是顯示在一個DBGrid里面
我是想把單價保留2位小數,
但是老出現這個問題,顯示出錯的self.ADOQuery2.Next句
我在網上也找了,都說是沒進入edit狀態,
但是我明明有edit,問題出在哪里,請幫幫忙
當你使用First或Next時ADOQuery2會自動Post,ADOQuery2處於dsBrowse狀態(數據集已打開,可以瀏覽數據,但是不能進行修改)
所以你必須在賦值語句前使用Edit,我幫你修改程序如下:

self.ADOQuery2.First;
while not self.ADOQuery2.Eof do
begin
self.ADOQuery2.Edit;
self.ADOQuery2.FieldByName('單價').Value:=roundto(self.ADOQuery2.FieldByName('單價').Value,-2);
self.ADOQuery2.Post;
self.ADOQuery2.Next;
end;
//self.ADOQuery2.Edit; X
self.ADOQuery2.First;
while not self.ADOQuery2.Eof do
begin
ADOQuery2.Edit; ///
self.ADOQuery2.FieldByName('單價').Value:=roundto(self.ADOQuery2.FieldByName('單價').Value,-2);
ADOQuery2.Post; ///
self.ADOQuery2.Next;
end;
//self.ADOQuery2.Post; X

Edit針對當前游標所在行,你next的時候,游標移動了,這個時候會自動POST
 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM