如何确定ADODC的提交方式是UPDATE 还是 UPDATEBATCH
在一个界面中用了一个Adodc1.Recordset,我发现在提交数据时,用 Adodc1.Recordset.Update和 Adodc1.Recordset.Updatebatch都可以。现在的问题是:1、ADODC的哪个属性控制用UPDATE还是用UPDATEBATCH.
2、为什么UPDATE和UPDATEBATCH都可以用。有什么区别。
--------------------编程问答-------------------- 1.ADODC控件里没有属性控制 用UPDATE还是用UPDATEBATCH
2.区别:Update只更新保存当前记录,UpdateBatch方法可以成批地更新保存多个记录。 --------------------编程问答-------------------- 谢谢,孤独剑。 我刚查到一个资料,说UPDATE用于保存单独一个字段,UPDATEBATCH用于保存多个字段。
如RS.姓名="张三",rs.易做图 = "男"等多个字段时用UPDATEBATCH,如果单独一个RS.姓名="张三"时用RS.UPDATE.
不知道这个说法准确不准确。 --------------------编程问答--------------------
单条记录更新用UPDATE
一批记录一起更新(也说是说你更改了多条记录,并没有逐条更新),可用UPDATEBATCH一次更新全部的修改内容。
--------------------编程问答-------------------- 理解错误,Update只更新保存当前记录,一次仅一条,
RS.姓名="张三"
rs.易做图 = "男"
这还是指的一条记录的2个字段,用update即可
--------------------编程问答-------------------- 为什么我用ADODC1.UPDATEBATCH更新了之后,立马用
sql = "select * from yhxx where 用户编号 =" & CStr(Zongbianhao) & ""
If Rst1.State = 1 Then Rst1.Close
Rst1.Open sql, Conn, adOpenKeyset, adLockPessimistic
If Rst1.RecordCount = 0 Then MsgBox "用户信息中找不到", vbOKOnly, "提示"
检查一下这个记录是否已经有了,却提示我 "用户信息中找不到"。而用CONN.EXCUTE SQL提交的记录,却可以立即查到。
--------------------编程问答-------------------- 批更新是会根据数据资源情况延时处理的,不是你UPDATEBATCH后,它就是会立即更新数据库,而是在比较空闲的时候才去更新数据库,这和update(立即执行)单条更新记录是不是一样.
--------------------编程问答-------------------- 我原先用的就是UPDATE,因为存在这个问题,今天刚刚把UPDATE改成了UPDATEBATCH,但是发现问题依旧,所以才发帖子求助于大家。
猴哥,如你所说,那UPDATE应该不会存在这个问题呀。这又如何解释呢。 --------------------编程问答-------------------- sql = "select * from yhxx where 用户编号 ='" & CStr(Zongbianhao) & "'" --------------------编程问答--------------------
在conn打开前加一句 conn.CursorLocation = adUseClient
rst1.open语句改成Rst1.Open sql, Conn, adOpenStatic, adLockPessimistic
然后用update更新,再看看.....
这因该是游标设置问题.
--------------------编程问答-------------------- 谢谢,猴哥。
但是这个UPDATE是用在ADODC1.RECORDSET上的呀,这个ADODC1有自己的connectionstring。和CONN没有关系吧。 而且现在初次查不到记录是ADODC这个控件保存的记录,而不是用CONN.EXCUTE保存的记录呀。
conn.CursorLocation = adUseClient 这个程序 中是有的。在整个程序一开始运行的时候,就已经设置了。 --------------------编程问答-------------------- 加延时 sleep(1000) --------------------编程问答-------------------- Adodc1 和 Conn 不是同一个连接,数据异步很正常。
你类似的问题提了好几个,解决的方法就是一个:不用 Adodc,统一用唯一的 Conn 访问数据库。
补充:VB , 网络编程