SQL="update guanxi set 关系='有效' ,最终关系=0 where 用户表号=1200522 AND 用户户号=0 and 用户编号=1 and 最终关系=1"GUANXI表的各字段属性是 :关系:字符 最终关系:数字 用户表号:数字 用户户号:数字 用户编号:数字 执行此CONN.EXECUTE SQL,出现的错误提示是:
“不能更新0个字段是因为类型转换失败,不能更新0个记录是因为键值冲突,不能更新1个记录是因为锁定冲突,不能更新0个记录是因为有效性规则冲突。
是否继续执行这个类型的操作查询?
如要忽略错误并且执行查询,请单击是。”之前有几个查询代码是:
sql = "select * from guanxi where 用户编号=" & sBianHao & " and 关系='失效' and 最终关系=1"
Rst.Close
Rst.Open sql, Conn, adOpenStatic, adLockReadOnly不知道最后一个参数adLockReadOnly是不是对这个执行语句有影响。请大家帮忙分析一下是什么原因。谢谢大家。
“不能更新0个字段是因为类型转换失败,不能更新0个记录是因为键值冲突,不能更新1个记录是因为锁定冲突,不能更新0个记录是因为有效性规则冲突。
是否继续执行这个类型的操作查询?
如要忽略错误并且执行查询,请单击是。”之前有几个查询代码是:
sql = "select * from guanxi where 用户编号=" & sBianHao & " and 关系='失效' and 最终关系=1"
Rst.Close
Rst.Open sql, Conn, adOpenStatic, adLockReadOnly不知道最后一个参数adLockReadOnly是不是对这个执行语句有影响。请大家帮忙分析一下是什么原因。谢谢大家。
解决方案 »
- 本地磁盘不能如预期那样包含关于"msdn vs 6.0 cd2"的文件
- 怎么实现平铺效果
- 请问:如何取消Unload事件?
- 我想将一个表中的记录筛选到另一个表中,如果另一个表中已存在这条记录则不能插入,否则就插入此记录,这个条件怎么写? 在线等
- 填字游戏源代码,由于本人开始VB.net的编程生涯了,这个给免费大家了。自己下载去!
- 哪位大哥有编程用的精美图标呀?
- 鼠标模拟点击的问题
- 为什么我在webbrowser1对象后面取得Document后再打一个"."就什么也不出来了阿
- crystl32.ocx 请问这是一个什么控件?哪里有得下载?
- 如何获得鼠标消息?
- 送分100分:ACESS的SQL语句中可以用的函数有哪些
- 送分100分:VB6用什么报表控件好
***************************
应该不是这个原因
****************************
1、 AdOpenForwardOnly (默认值)一次只能向前移动一行。
2、 AdOpenKeyset 打开键集类型游标。
3、 AdOpenDynamic 打开动态类型游标
4、 AdOpenStatic 打开静态类型游标。
AdOpenForwardOnly和AdOpenStatic这两种游标使得记录集只读,它表示创建数据的一个快照。后者比前者灵活,因为它可以允许任意方向移动。
AdOpenKeyset允许任意移动,并且允许更改记录集。其他用户对记录集的添加和删除,这个游标反映不出来。但它能反映出其他用户对记录集的更改。
AdOpenDynamic允许所有操作,其他用户对记录集的添加、删除、更改在此记录集中 都是可见的。
1、 AdLockReadOnly (默认值)只读 --- 不能改变数据。
2、 AdLockPessimistic 悲观锁(逐个)--- 为确保成功完成编辑记录所需的工作,
在编辑时立即锁定数据源的记录。
3、 AdLockOptimistic 乐观锁(逐个)--- 只在调用Update 方法时才锁定记录。
4、 AdLockBatchOptimistic 乐观批更新---用于批更新模式(与立即更新模式相对)。
http://download.csdn.net/source/1644211
要执行update 语句,不如直接Conn.execute("your sql")
只读的数据可以试试用无连接方式。
Set rst = New ADODB.Record
rst.CursorLocation = adUseClient
rst.Open sql, Conn, adOpenStatic, adLockReadOnly
Set rst.ActiveConnection = Nothing
conn.execute sql
sql = "select * from guanxi where 用户编号=" & sBianHao & " and 关系='失效' and 最终关系=1"
Rst.Close
Rst.Open sql, Conn, adOpenStatic, adLockReadOnly
读取到的正好是我要进行UPDATE的数据,如何才能保证这个UPDATE语句的正常执行呢。
Rst.Close
Rst.Open sql, Conn, adOpenStatic, adLockOptimistic, adCmdText
试试这个。
将 RecordSet 和 Connection 分离开来,这个记录集就成了一个单纯的数据对象,和数据库不再发生任何关系,也就不会影响后面的更新了。又:rst 变量(包括其他的对象)用完后就 Set Nothing,用之前重新 New,可以避免前后多次操作之间内部成员的差异,这是编程原则。
执行UPDATE和Conn.execute("your sql") 不都会受到adLockReadOnly的影响吗?
http://topic.csdn.net/u/20110223/08/31e5b230-4361-4ceb-913c-5b4a817e5c58.html