最近我為一個客戶寫了一個系統,在單機下運行很好(asa9 資料庫),單用戶最近提出,需要把系統做成網路系統,多用戶使用
于是我就改為sql server 2000 資料庫,服務器的環境是 windows server 2003 + sql server 2000,連接資料庫的引數為:
SQLCA.DBMS = "OLE DB"
SQLCA.LogPass = '660808'
SQLCA.LogId = "sa"
SQLCA.AutoCommit = false
SQLCA.DBParm = "PROVIDER='SQLOLEDB',DATASOURCE='SPPH-E57E4C2855',PROVIDERSTRING='database=physics'"
問題是 :當有多個用戶進入系統后,如果有一個用戶在做資料更新后,如果保存資料的話,則出現死機(滑鼠變成漏斗狀)現象,這時如果其他用戶退出系統,則保存成功,漏斗消失,后來我把連接引數 SQLCA.AutoCommit = false 改為 SQLCA.AutoCommit = true ,問題解決了,但是,這樣有解決不了并發問題,請大蝦幫幫我,我很著急,謝謝
uj5u.com熱心網友回復:
正常,連接引數差點東西uj5u.com熱心網友回復:
明顯是鎖的跡象,修改AutoCommit后正常也說明了這點。
查看你的腳本,在dw.update 后,要有對應的commit或rollback
uj5u.com熱心網友回復:
樓上朋友說的很對,我的腳本在dw.update 后,有對應的commit或rollback ,但是,腳本中如果有嵌入式update、insert等sql陳述句時,無需commit,則資料更新成功
而我的想法是在update、insert陳述句后判斷sqlcode的值,再執行commit或rollback ,不知道這個問題怎么解決,謝謝
uj5u.com熱心網友回復:
把你的做法放到PB9中試試,保正不會出現這種現象,哈哈,在PB10以后,你的連接陳述句應該是少了點東西uj5u.com熱心網友回復:
請問樓上哥們,我的連接引數少什么,可以告訴我嗎?謝謝uj5u.com熱心網友回復:
我也是升級到10以后才出現的這個問題,后來都加了一個COMMIT解決的uj5u.com熱心網友回復:
資料視窗在更新到資料庫時,必須馬上commit或者rollback,如果這之間,再有彈出視窗出現,比如,pos機收款時,錢箱打開了,dw_1.update()找錢,再回車,如果這時再commit;其他pos機就會出現假死現象。這種現象在單機上是不會出現的。我認為與pb的版本無關
uj5u.com熱心網友回復:
使用oledb連接資料庫的時候就會這樣加上:
SQLCA.Lock = "RC"
可以解決這問題
uj5u.com熱心網友回復:
使用oledb連接資料庫的時候就會這樣加上:
SQLCA.Lock = "RC"
可以解決這問題
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/104905.html
標籤:數據庫相關
上一篇:我用PB7.0+ASA6.0做了一個單機版的軟體,如何實作C/S模式?可以實作么
下一篇:獲取并口列印機列印資料
