VFP 愛用者社區 首頁 VFP 愛用者社區
本討論區為 Visual Foxpro 愛用者經驗交流的地方, 請多多利用"搜尋"的功能, 先查看看有無前例可循, 如果還有不懂的再發問. 部份主題有附加檔案, 須先註冊成為社區居民才可以下載.
 
 常見問題常見問題   搜尋搜尋   會員列表會員列表   會員群組會員群組   會員註冊會員註冊 
 個人資料個人資料   登入檢查您的私人訊息登入檢查您的私人訊息   登入登入

更新DBC裡的遠端VIEW,程式都會當掉,連同其它電腦的SQLSERVER也會同時停住
前往頁面 1, 2  下一頁
 
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區
上一篇主題 :: 下一篇主題  
發表人 內容
蔡文華



註冊時間: 2005-10-31
文章: 118


第 1 樓

發表發表於: 星期二 一月 04, 2011 9:49 pm    文章主題: 更新DBC裡的遠端VIEW,程式都會當掉,連同其它電腦的SQLSERVER也會同時停住 引言回覆

各位大大好,這次我又遇到問題了,先說明一下狀況,
有一台多工的伺服器,WIN2003SERVER+SQLSERVER
同時有五台個人電腦連到這到主機讀取SQLSERVER並寫入
現在遇到一個問題...
在單機上我寫了程式只要是有新增,刪除,修改記錄的我都使用 SQLEXEC() 的方式直接將資料寫到主機去...

因為五台電腦同時都有人在寫資料到主機的SQLSERVER去
而因為每台電腦都必須即時的反應出後台被寫入的資料...
所以我在每台電腦上都建有一個.DBC的資料庫,然後使用遠端VIEW去對應SQLSERVER的每一個TABLE,這樣當單機程式寫入SQLSERVER後,我都會
順便使用 =REQUERY() 去更新遠端VIEW的記錄,好提供給單機程式下 SELECT ...WHERE (遠端VIEW) 時使用....

現在問題來了....如果只有一台電腦在KEY單時,都不會有問題,
但是只要二台電腦同時KEY單時,每當下SQLEXEC() 將資料寫回後,在使用=REQUERY() 去更新VIEW的資料時,有時就會整個當住,而且當住..是連其它台電腦在執行SQLSERVER存取時都會跟著當.....

我想請教這種情況要如何排除呢??
回頂端
檢視會員個人資料 發送私人訊息
蔡文華



註冊時間: 2005-10-31
文章: 118


第 2 樓

發表發表於: 星期二 一月 04, 2011 9:57 pm    文章主題: 述上面問題 引言回覆

特別說明:程式當了..是完全沒有任何錯誤訊息...只是就停在 =REQUERY() 那一行指令...然後等很久也沒任何消息了.....連其它台電腦只要到要去SQLSERVER讀取資料的也都當.....也沒任何錯誤訊息....
真的很頭痛
回頂端
檢視會員個人資料 發送私人訊息
ckp6250



註冊時間: 2004-07-30
文章: 1644


第 3 樓

發表發表於: 星期二 一月 04, 2011 10:13 pm    文章主題: 引言回覆

個人覺得, 依賴DBC的遠端VIEW,不是好方法
因為您不知道VFP是如何處理的,
還是直接用 SPT 去處理 SQL Server 較為妥當
有問題也好判斷
回頂端
檢視會員個人資料 發送私人訊息 參觀發表人的個人網站
syntech



註冊時間: 2003-05-16
文章: 4212
來自: Taipei,Taiwan

第 4 樓

發表發表於: 星期三 一月 05, 2011 12:07 am    文章主題: 引言回覆

應該研究一下,
SQL SERVER的鎖定機制

_________________
如果公司有下列困擾:
1. 找不到便宜,快速,簡易的 生產排程軟體
2. 不知道如何快速排定 採購計劃
3. 成本抓不準,自己算比軟體算有用
4. 想學習系統規劃,想找系統架構的顧問

請聯絡我們,也許我們幫得上忙
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件 AIM Address
蔡文華



註冊時間: 2005-10-31
文章: 118


第 5 樓

發表發表於: 星期三 一月 05, 2011 8:57 am    文章主題: 如上述 引言回覆

問題在我單機裡的.DBC產生的遠端VIEW,只做查詢動作,並沒有開放可以更新,這樣也會有SQL鎖定的問題嗎?

VIEW只有查詢功能,要得到最新的資料最下=REQUERY()更新,也會有鎖定的問題嗎?

我個人的測試,好像在VIEW的資料於SQLSERVER上的資料有不同時,而我又下了=REQUERY(),才會整個當住,請問還有那裡我沒做到嗎
回頂端
檢視會員個人資料 發送私人訊息
syntech



註冊時間: 2003-05-16
文章: 4212
來自: Taipei,Taiwan

第 6 樓

發表發表於: 星期三 一月 05, 2011 9:17 am    文章主題: 引言回覆

有沒有變成DEADLOCK,請看SQL SERVER Enterprise manager
_________________
如果公司有下列困擾:
1. 找不到便宜,快速,簡易的 生產排程軟體
2. 不知道如何快速排定 採購計劃
3. 成本抓不準,自己算比軟體算有用
4. 想學習系統規劃,想找系統架構的顧問

請聯絡我們,也許我們幫得上忙
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件 AIM Address
蔡文華



註冊時間: 2005-10-31
文章: 118


第 7 樓

發表發表於: 星期三 一月 05, 2011 9:34 am    文章主題: 如上述 引言回覆

我有到sqlserver去看如果單機使用requery()的那個表格當住了...
我用主機的sqlserver去開那個表格...真的無法被開啟....

還是我用sqlserver工具可以如何去查看現在的情況
回頂端
檢視會員個人資料 發送私人訊息
syntech



註冊時間: 2003-05-16
文章: 4212
來自: Taipei,Taiwan

第 8 樓

發表發表於: 星期三 一月 05, 2011 10:29 am    文章主題: 引言回覆

不知道你是哪一版sql server......


總之,差不多在這裡,被鎖定時會出現"被xxx處理序鎖定"的樣子,不太記得. Wink

_________________
如果公司有下列困擾:
1. 找不到便宜,快速,簡易的 生產排程軟體
2. 不知道如何快速排定 採購計劃
3. 成本抓不準,自己算比軟體算有用
4. 想學習系統規劃,想找系統架構的顧問

請聯絡我們,也許我們幫得上忙
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件 AIM Address
syntech



註冊時間: 2003-05-16
文章: 4212
來自: Taipei,Taiwan

第 9 樓

發表發表於: 星期三 一月 05, 2011 10:34 am    文章主題: 引言回覆

如果你都使用 SPT,
原則上都會是離線cursor,就不會有鎖定的問題,
但是要自行處理離線cursor與sql table,可能因為"某些情況"更新不了的問題.

但如果是 remote view,
那就要小心在 remote view與sqlexec() 之間混用的時候,會不會踩到地雷,
但是我因為沒使用 remote view,經驗值不足, XD
當初技術評估時就預估可能有這種情況出現,所以就沒考慮remote view了.

_________________
如果公司有下列困擾:
1. 找不到便宜,快速,簡易的 生產排程軟體
2. 不知道如何快速排定 採購計劃
3. 成本抓不準,自己算比軟體算有用
4. 想學習系統規劃,想找系統架構的顧問

請聯絡我們,也許我們幫得上忙


syntech 在 星期三 一月 05, 2011 11:47 am 作了第 1 次修改
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件 AIM Address
蔡文華



註冊時間: 2005-10-31
文章: 118


第 10 樓

發表發表於: 星期三 一月 05, 2011 11:45 am    文章主題: 如上述 引言回覆

主機的作業系統 windows2003server
sqlserver 2000 + sp4
回頂端
檢視會員個人資料 發送私人訊息
蔡文華



註冊時間: 2005-10-31
文章: 118


第 11 樓

發表發表於: 星期三 一月 05, 2011 11:46 am    文章主題: 如上述 引言回覆

我發現如果單機當住了....
連主機的sqlserver整個的效能就變慢了...
好像老牛拖車一樣
回頂端
檢視會員個人資料 發送私人訊息
蔡文華



註冊時間: 2005-10-31
文章: 118


第 12 樓

發表發表於: 星期三 一月 05, 2011 11:51 am    文章主題: 如上述 引言回覆

在這裡要請問...
如果我採用spt的cursor...
那我開啟了cursor後,當sqlserver有更新時....
我如何更新前端的cursor呢?是否要重新select呢??如果是...
那舊的cursor會被關掉再從新建一個相同cursor名稱的表格...
那如果有form裡的grid一直引用該cursor名稱...則會整個變成空白...
....不知如何處理..在不關掉該cursor的情況下....重新更新裡面的記錄呢?
回頂端
檢視會員個人資料 發送私人訊息
syntech



註冊時間: 2003-05-16
文章: 4212
來自: Taipei,Taiwan

第 13 樓

發表發表於: 星期三 一月 05, 2011 11:59 am    文章主題: 引言回覆

這就是人家說的"KNOWHOW"了. XD
_________________
如果公司有下列困擾:
1. 找不到便宜,快速,簡易的 生產排程軟體
2. 不知道如何快速排定 採購計劃
3. 成本抓不準,自己算比軟體算有用
4. 想學習系統規劃,想找系統架構的顧問

請聯絡我們,也許我們幫得上忙
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件 AIM Address
ericklin



註冊時間: 2007-11-14
文章: 107
來自: 台中市

第 14 樓

發表發表於: 星期三 一月 05, 2011 1:41 pm    文章主題: 引言回覆

我用remote view很久了 還沒遇到這樣的問題
建議幾個方向調整試試看:不一定有效
1.update view 後 把view table 關閉 或者 再requery() 一次沒出錯 再 關閉
<<我再猜是更新到 sql server未完成>
2.client端只查看的remote view的資料緩充 改成 0 (不使用) -->影響應該不大
3.更新完成後 SQLDISCONNECT( )
回頂端
檢視會員個人資料 發送私人訊息 MSN Messenger
蔡文華



註冊時間: 2005-10-31
文章: 118


第 15 樓

發表發表於: 星期四 一月 06, 2011 11:38 am    文章主題: 引言回覆

我又另做了一個測試,就是全部使用 remote view 做更新 buffering ,5 ,
然後每次做 =tableupdate() , =requery() 時我都會在後面在加上 unlock in xxx 去開鎖
然後...我在每台單機的程式的.dbc 裡 要連sql server的字串,每一台登入字串的帳號密碼不同...

這樣當掉的機率就沒那麼經常了...我在想是不是同一組帳號存取sql server來快了..因為客戶
的打單量很大...所以會經常的 =tableupdate , =requery ...而且都用同一組帳號登入存取
會不會讓sql server認為是攻擊..或量太大而當了
回頂端
檢視會員個人資料 發送私人訊息
從之前的文章開始顯示:   
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區 所有的時間均為 台北時間 (GMT + 8 小時)
前往頁面 1, 2  下一頁
1頁(共2頁)

 
前往:  
無法 在這個版面發表文章
無法 在這個版面回覆文章
無法 在這個版面編輯文章
無法 在這個版面刪除文章
無法 在這個版面進行投票
無法 在這個版面附加檔案
無法 在這個版面下載檔案


Powered by phpBB © 2001, 2005 phpBB Group
正體中文語系由 phpbb-tw 維護製作