數據庫鎖以及商友傳送工具

表查詢鎖 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 聯營商品結算單[本月銷售金額] 是含優惠金額的. 這和銷售報表中的[銷售金額] 是有區別的.
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章