ado问题,数据库数据更改方面的,高手指点一下! ( 积分: 100 )

L

lmk

Unregistered / Unconfirmed
GUEST, unregistred user!
procedure&nbsp;TfrmSyncMain.Button1Click(Sender:&nbsp;TObject);<br>var<br>&nbsp;&nbsp;RemotePayDB&nbsp;:&nbsp;TADOConnection;<br>&nbsp;&nbsp;adoquery&nbsp;:&nbsp;TADOQuery;<br>begin<br>&nbsp;&nbsp;RemotePayDB&nbsp;:=&nbsp;TADOConnection.Create(nil);<br>&nbsp;&nbsp;//查找费用明细信息和用户扩展信息<br>&nbsp;&nbsp;RemotePayDB.ConnectionString&nbsp;:=&nbsp;strLocalPayDB;<br>&nbsp;&nbsp;RemotePayDB.Connected;<br>&nbsp;&nbsp;adoquery&nbsp;:=&nbsp;TADOQuery.Create(self);<br>&nbsp;&nbsp;adoquery.Connection&nbsp;:=&nbsp;RemotePayDB;<br>&nbsp;&nbsp;adoquery.SQL.Text&nbsp;:=&nbsp;'select&nbsp;*&nbsp;from&nbsp;readmeter&nbsp;where&nbsp;custid=''1001966''';<br>&nbsp;&nbsp;adoquery.Bookmark;<br>&nbsp;&nbsp;adoquery.Open;<br>&nbsp;&nbsp;adoquery.First;<br>&nbsp;&nbsp;adoquery.Edit;<br>&nbsp;&nbsp;while&nbsp;not&nbsp;adoquery.Eof&nbsp;do<br>&nbsp;&nbsp;begin<br><br>&nbsp;&nbsp;&nbsp;&nbsp;adoquery.FieldByName('isrecouppay').AsString&nbsp;:=&nbsp;'3';<br>&nbsp;&nbsp;&nbsp;&nbsp;adoquery.Next;<br><br>&nbsp;&nbsp;end;<br>&nbsp;&nbsp;adoquery.Post;<br>&nbsp;&nbsp;adoquery.Close;<br>&nbsp;&nbsp;adoquery.Free;<br>&nbsp;&nbsp;RemotePayDB.Close;<br>&nbsp;&nbsp;RemotePayDB.Free;<br>end;<br>主要是想成批更改,然后一起提交的!但上面这样写报dataset&nbsp;not&nbsp;in&nbsp;edit&nbsp;or&nbsp;insert&nbsp;mode&nbsp;错
 
你Next之后当然就已经退出Edit状态了啊!把Next放在Post后边,而且你的语句写的罗索哦。直接用ADOQuery.SQL.Add('UPDATE&nbsp;readmeter&nbsp;SET&nbsp;isrecouppay=''3''&nbsp;WHERE&nbsp;custid=''1001966''');然后ADOQuery.ExecSQL就可以了啊!
 
to&nbsp;Johnny_du:能不能帮我写出来呢!
 
感谢Johnny_du,把while&nbsp;那个循环去掉就行了,呵呵!接分
 
接受答案了.
 
一种是用SQL语句直接改<br>adoquery<br>with&nbsp;adoQuery&nbsp;do<br>begin<br>&nbsp;&nbsp;close;<br>&nbsp;&nbsp;sql.text&nbsp;:=&nbsp;&nbsp;'update&nbsp;readmeter&nbsp;set&nbsp;isrecouppay&nbsp;=&nbsp;''3''&nbsp;'&nbsp;+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'where&nbsp;custid=''1001966''';<br>&nbsp;&nbsp;execSQL;<br>end<br>第二种<br>设成批更新方式<br>&nbsp;&nbsp;adoquery.locktype&nbsp;:=&nbsp;ltBatchOptimistic;<br>&nbsp;&nbsp;adoquery.post后执行adoquery.UpdateBatch
 
顶部