1、好代码一定不会冲突,SQL自己会根据顺序进行处理。
2、读取时用优化锁,更新时若不止更新多次数据,用事务;
3、事务简而言之就是多件事变成一件事,要么一起OK,要么一起失败。
For example:
Read:
ret.Open "select * from stockout where serialId=''", myCns, adOpenDynamic, adLockOptimistic
Update: Mycns.BeginTrans
           mycns.execute "update ***"
           Mycns.execute "Delte ***"
        Mycns.Committrans

解决方案 »

  1.   

    1.事务能保障“数据处理的完整性”,即包括在事务内的操作要么一起提交完成,要么在特定条件下(如某个环节处理失败)回滚取消;
    2.在Client端你的要求要靠使用适当的锁来保障不出现“更新异常”,具体锁类型请查阅MSDN。如在VB ADO中:
    adLockReadOnly (默认值)只读 — 不能改变数据。 
    adLockPessimistic 保守式锁定(逐个) — 提供者完成确保成功编辑记录所需的工作,
                      通常通过在编辑时立即锁定数据源的记录来完成。 
    adLockOptimistic 开放式锁定(逐个) — 提供者使用开放式锁定,只在调用 Update 
                      方法时才锁定记录。 
    adLockBatchOptimistic 开放式批更新 — 用于批更新模式(与立即更新模式相对)。 
      

  2.   

    几个程序同时对一个表进行操作,它们是根据其中的学号字段,各自向不同的字段中读写数据,请问这种情况下会不会出现冲突?
    当然会,会有LOCK的冲突,只是看你如何来处理这些“冲突”,每次操作都是对资源的占用,SQLSERVER会管理这些资源(根据你的配置),你所要做的就是如何配置来保证数据的完整性和性能的优化这对矛盾。