数据库锁以及商友传送工具

表查询锁 TABLOCK ,HOLDLOCK,  NOLOCK, at isolation 0
tablock是表级的排它锁。可以防止其它事务读取或更新表,并在语句或事务结束前一直持有。  
holdlock将共享锁保留到事务完成,而不是在相应的表、行或数据页不再需要时就立即释放锁。   
默认情况下修改数据会加排它 (X)   锁,可以防止并发事务对资源进行访问。其它事务不能读取或修改排它   (X)   锁锁定的数据,
加了with   nolock   后select   语句就不要求获得共享锁了,就可以查询出来结果了,但是有可能引起脏读。
NOLOCK 可能把没有提交事务的数据也显示出来.
READPAST 会把被锁住的行不显示出来 
还是脏读好用 at isolation 0
------SQLScript 工具生成的表结构脚本 缺失DEFAULT  问题严重!!
TranDataTool 实用纪实
0.MTH版用VIPXFJL 东星版用VIP_XFJL表须内置
  INI 文件中[服务器][客户机]固定关键字, 存送定义存在服务器对应的系统内.
  传送先客户机to服务器,然后再服务器to客户机--->即先上传后下传

1.打开窗口直接点设置传送内容. 报错另外的XXX数据库不存在, 点传送之后再点设置则可正确打开.
  配置的用户DOWNLOAD_USER 默认数据库为XXX 而 XXX已经被删除.
  系统当时并没马上读取到INI 文件中所配置的数据库.因此按默认库访问相关表 自然失败.
2.传送中 当涉及到关键表不存在的时候,系统并不提示错误,SQLMON 监控也没有错误提示.应该是被做了错误消息屏蔽.STAMP 假如不存在,程序界面以及SQLMON均不提示错误,但其实无法传送.因为无法做出新旧TM 比较取数. (VIP_XFJL or VIPXFJL不存在不报错 不影响传递)
3.本地库的STAMP 存本地相应表的TM,FDBH 写传递对方的编号.如上传信息更新客户机库STAMP.TM, 写入FDBH=0传递之前刷新STAMP_NEW,目的是在多用户共同读写相关表的情况下,当时只精确传递TM>=STAMP_OLD and TM<=STAMP_NEW 时间戳范围内的数据.
4.经过测试支持由试图传数据入同名表中.
5.传送程序点开报错"is not a valid integer value. 缘由INI 文件FDBH 没定义.
6.某表传送过程中报错,如数据越界非法,查出目标库最新记录,在源库中使用相同查询条件该记录之后的一条记录. 即为问题数据.维护之.
7.定义中曾发现数据对传问题.死循环无休止传送. 发现定义不当造成. 定义一定要规范.否则因小失大.
[服务器]
FDLX=0
ZD=0
FDBH=0
LX=0
BFv5.31
BFCONFIG.INI [本地] 较为关键
同一配置文件登陆分店日处理,再做总部日处理 则会提示表结构报错, FD.RCL用DATA  ZD.RCL用日期.
程序只有一个EXE, 只根据[本地]配置来确认你是总店还是分店,由此调出对应菜单.
BFv5.2 联营商品结算单[本月销售金额] 是含优惠金额的. 这和销售报表中的[销售金额] 是有区别的.
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章