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 |