在一个修改用户信息的窗体中有一个姓名列表控件datacombo1和一个RECORDSET变量RSTXM,sql="select 姓名 form  yhxx  order by  姓名"
RSTXM.open sql,conn,adOpenKeyset ,adLockReadOnly 执行修改信息的语句如下:
sql="update yhxx set 姓名='张三'  where  姓名='李四'"
conn.execute sql请问RSTXM.open sql,conn,adOpenKeyset ,adLockReadOnly 中的adLockReadOnly 会不会影响CONN.EXECUTE的执行。

解决方案 »

  1.   

    不一定。
    不同类型的数据库、甚至同类数据库的不同版本处理方法都不一样。
    参数 adLockReadOnly 只是表明这里“不需要加锁”,并不是“不能加锁”,如果数据库自己要加,你管不着。
    曾经碰到过 Sybase 在只读模式下发生加锁的情况。
      

  2.   

    adLockReadOnly表明执行open语句时加的锁类型是只读的. 与上面执行update语句不是同一事务,没有影响.
      

  3.   


    他们不是涉及到同一条记录吗?怎么能说没影响,adLockReadOnly让这条数据只读,而后面的CONN.EXECUTE语句又要更改这条记录,这不显然是相互矛盾的吗?
      

  4.   


    你是说这 RSTXM.open 和 CONN.EXECUTE 是两个事务,当执行 CONN.EXECUTE 时, RSTXM.open 的事务已经执行完毕了,对吗?