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

我的 CursorAdapter 不能 update 請教

 
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區
上一篇主題 :: 下一篇主題  
發表人 內容
Abel



註冊時間: 2005-03-14
文章: 189
來自: 鹿港小鎮

第 1 樓

發表發表於: 星期一 十月 03, 2005 12:20 pm    文章主題: 我的 CursorAdapter 不能 update 請教 引言回覆

各位大大,小弟我最近使用 CursorAdapter,參考了論壇上的資料,在 Native 上已經可以 update,但是在 ODBC 中卻一直無法 update , 附圖中是我的設定,在 form 中可以上下翻頁,當我修改了 textbox 中的值,然後按下 command1 執行 update(內容:TABLEUPDATE(),或是先直接下 replace into_qr WITH 123 再 TABLEUPDATE()), 看起來好像 update 了,再 Cursorfill() 一次卻沒有改,我一直找不出原因,請各位大大解我困惑,謝謝謝謝。
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件
211482



註冊時間: 2003-07-15
文章: 53


第 2 樓

發表發表於: 星期一 十月 03, 2005 2:03 pm    文章主題: 引言回覆

使用下面的code就可以知道原因了

IF TABLEUPDATE()
 .
 .
 .
 WAIT WINDOW "資料已經儲存完畢" NOWAIT
ELSE && 錯誤處理
 AERROR(aErrors)
 IF "PRIMARY KEY" $ aErrors[1,2]
  MESSAGEBOX("因為您所輸入的主鍵值資料重複,因此資料寫入失敗",4+16+0, "")
 ELSE
  MESSAGEBOX("因為發生下列錯誤,因此資料寫入失敗"+STR(aErrors[1,1])+" "+aErrors[1,2],4+16+0,"")
 ENDIF
ENDIF
回頂端
檢視會員個人資料 發送私人訊息
Abel



註冊時間: 2005-03-14
文章: 189
來自: 鹿港小鎮

第 3 樓

發表發表於: 星期一 十月 03, 2005 4:04 pm    文章主題: 引言回覆

謝謝 大大 211482 我用以下的方式查出這個錯誤,可是我改了許多地方就是知道它錯在那,謝謝您。

*******************************
* Write Down
*lc_Alias = need updata table ll_WriteDown = 寫入是成功
*******************************
LOCAL lc_alias_s,lc_alias_w
LOCAL la_reeors[1]
LOCAL ll_WriteDown
STORE "" TO lc_alias_s,lc_alias_w
STORE .F. TO ll_WriteDown

lc_alias_s = ALIAS ()

DO WHILE .T.
IF TABLEUPDATE(.T.,.T.)
MESSAGEBOX ("Save OK~ ! Thank you " , 4+16+0 , "Hello")
ll_WeiteDown = .T.
EXIT
ELSE
AERROR(la_errors)
IF MESSAGEBOX ("錯誤代號:"+ALLTRIM(STR(la_errors[1,1]))+CHR(13)+CHR(13)+;
"錯誤原因:"+la_errors[2]+CHR(13)+CHR(13)+;
"因此寫入錯誤,您還要繼續嗎 ? ",4+16+0 ,"請確定") = 7
TABLEREVERT()
ll_WeiteDown = .F.
EXIT
ENDIF
ENDIF
ENDDO
SELECT &lc_alias_s
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件
Abel



註冊時間: 2005-03-14
文章: 189
來自: 鹿港小鎮

第 4 樓

發表發表於: 星期一 十月 03, 2005 4:06 pm    文章主題: 引言回覆

對不起 打錯了,我就是查不出錯在那,謝謝
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件
Abel



註冊時間: 2005-03-14
文章: 189
來自: 鹿港小鎮

第 5 樓

發表發表於: 星期一 十月 03, 2005 4:16 pm    文章主題: 引言回覆

各位大大,我還有一個很奇怪的問題,不知道是那個設定錯了,每次我在 vfp 中所打的中文 複製到其它工具,就是成為亂碼(中文部份),這個問題也困擾我許久,有那位大大知道要如何設定,謝謝您。
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件
211482



註冊時間: 2003-07-15
文章: 53


第 6 樓

發表發表於: 星期一 十月 03, 2005 11:11 pm    文章主題: 引言回覆

你第3圖的INTO_QR欄位型態是?
回頂端
檢視會員個人資料 發送私人訊息
Abel



註冊時間: 2005-03-14
文章: 189
來自: 鹿港小鎮

第 7 樓

發表發表於: 星期二 十月 04, 2005 8:19 am    文章主題: 引言回覆

您好, into_qr 欄為 smallint 長度 2
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件
Abel



註冊時間: 2005-03-14
文章: 189
來自: 鹿港小鎮

第 8 樓

發表發表於: 星期二 十月 04, 2005 8:26 am    文章主題: 引言回覆

我試著修改其它欄,都會發生一樣的錯誤,一樣的設定方式可以用在 Native 而且可以更改欄位內容, 各位大大請幫幫我吧 !
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件
Abel



註冊時間: 2005-03-14
文章: 189
來自: 鹿港小鎮

第 9 樓

發表發表於: 星期一 十月 17, 2005 11:16 am    文章主題: 引言回覆

啊怎麼,沒有下文。上週比較忙,不是防火牆 down 就是 data server 中毒,而且我自己的電腦又出狀況,
就連工作管理員都不正常,最後無耐只好電腦重灌,記錄、匯出、重灌、匯入、update、到處找註冊碼、
密碼、資料重建…,真是惡夢一場,所以現在才有能力上來 VFP 愛用者社區看看的(以前都是自動記憶密碼
登入,結果重灌後找不到密碼,還是早上以重新啟用新密碼,才得以進入)。

各位大大,我覺得 CursorAdapter 有它一定的益處與供獻在 vfp 中,它可以使用程式的寫法使用它,
也可以用 visual 的方式使用,它的好處相信各位大大都知道,而在我這簡單的腦袋目前看來,它能讓我脫離了
DBC 的約束,尤其在 Remote View 的不便,與 SPT 的煩瑣

我舉一個讓我感動的小地方,我們目前所用的 ERP 是用 SQL server(後端)Delphi、VB、VFP(前端),
由某公司設計開發,而在我維護修改的工作中,我一定是利用 SQL local 與 VFP 做測試,最後才改成正常的
SQL date server 與 VFP 的環境(利用 odbc 來存取),其中最傷腦筋是

在 remote view 方面
1.因為使用 DataEnvironmet 所以 DBC 需要改來改來改去,一下 local,一下 dataserver
2.只要資料結構有改變,在 DBC 就需要重做,而且還得要去 Client 一個一個的修改其 DBC
3.如果在 SQL 有使用所謂的觸發程序,它就完了(至少我還沒學會怎麼用)

在 STP 方面
它實在好用,但是需要自己控制管理的也太多了吧,光是需要記憶的指令與用法就一大串,
最讓我覺得沒有效率是,做個簡單的動作,要打的字就一大串(我常常因為自己打錯花好多時間在除錯上),
所以我一直都沒學好怎麼用它

我之前是使用 vfp6,近三個月來使用 VFP9,發現它有這樣一個東東,我就一頭栽進去,但是自己英文能力差,
加上我雖然管電腦的維修開發,網頁維護,還要辦理 ISO 文件的增修廢、資產管理、內部稽核、協助各部門
建立工作說明書…,如果能使用到一個高效能的開發工具,您想我將會是非常可喜的事情,希望各位大大能
出手指導,助我練成 CursorAdapter ,感謝各位。
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件
211482



註冊時間: 2003-07-15
文章: 53


第 10 樓

發表發表於: 星期一 十月 17, 2005 2:16 pm    文章主題: 引言回覆

依你傳上來的錯誤訊息來看是找不到 into_qr 這個欄位你應確認這個欄位是否有問題,如還是找不出問題點那就先暫時不要處理這個欄位看行不行
回頂端
檢視會員個人資料 發送私人訊息
Ruey



註冊時間: 2003-03-12
文章: 1698
來自: tunglo

第 11 樓

發表發表於: 星期五 八月 04, 2006 11:22 am    文章主題: 引言回覆

我也遇到種情形...
我是改BufferModeOverride 屬性換成 "5",

就OK了

_________________
#############################
快樂媽咪系列幸福宅配,喝十全雞湯~原來幸福那麼簡單!!

學會VFP使用者社區的搜尋,Code才會更有趣~
#############################
回頂端
檢視會員個人資料 發送私人訊息
summer



註冊時間: 2003-06-19
文章: 32


第 12 樓

發表發表於: 星期五 八月 04, 2006 12:54 pm    文章主題: 引言回覆

下完 TableUpdate() 後,使用 AERROR() 這個函數去讀出 ODBC 或 OLEDB 回送的訊息,再來判讀如何處理...

目前看來好像是 Table 的使用權問題 ...

如果你僅是設計一套 Client / Server 的程式的話,不建議你如此使用,這樣太浪費資源了...

使用 SQLExec 就足夠應付你的spt所需了...
回頂端
檢視會員個人資料 發送私人訊息
Abel



註冊時間: 2005-03-14
文章: 189
來自: 鹿港小鎮

第 13 樓

發表發表於: 星期六 八月 05, 2006 1:03 pm    文章主題: 引言回覆

summer 大大我知道您所說的太費資源應該是指使用 <- , -> 上下翻頁的情形,而是應該
讓 user 直接先查詢出所要的 資料 再 load 下是嗎?

這裡我只是簡單做一個 form 來說明為何不能 將修改後的資料 update 至 server
(in the 利用 CursorAdapter 所設計的 form 中)
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件
summer



註冊時間: 2003-06-19
文章: 32


第 14 樓

發表發表於: 星期一 八月 07, 2006 1:44 pm    文章主題: 引言回覆

這是整體效率的問題,不是單一個 Form 的問題...

假如...
狀況一,在 Client/Server 裡,使用 CursorAdapter,每一個 Client 端與主機聯線,它所使用的聯線資源,即使是只有一個人,它就是一個獨立的 Connection , 更不用說,設計不良時,一個Form可能就開一個 Connection ,這樣,主機的記憶體,很快就會被你用完....

狀況二,使用三層式構下的 CursorAdapter,它實際上,是利用中間層與主機端唯一的 Connection 來溝通,所以,不管你的 Client 有多少個人,Client 永遠都是在中間層溝通,而中間層永遠只有一個 Connection 與主機溝通(當然啦,你如果想用兩個或三個 Connection 去做事也可以,隨你的高興啦),所以,實際主機的資源會很省...

兩種狀況相較之下, 應該適時適地的選擇較有利的執行方法,請記得,考慮效能,設計人員必須站在整體去觀看,而不是只有自己目前的這一個點...
回頂端
檢視會員個人資料 發送私人訊息
Abel



註冊時間: 2005-03-14
文章: 189
來自: 鹿港小鎮

第 15 樓

發表發表於: 星期二 八月 22, 2006 12:48 pm    文章主題: 引言回覆

感謝 summer 大大的說明,受教了,我會注意的。

回到主題:
下完 TableUpdate() 後,使用 AERROR() 這個函數去讀出 ODBC 或 OLEDB 回送的訊息,再來判讀如何處理...

目前看來好像是 Table 的使用權問題 ...

從圖一中的第1小圖可以知道是以 sa 最高權限進入的
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件
從之前的文章開始顯示:   
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區 所有的時間均為 台北時間 (GMT + 8 小時)
1頁(共1頁)

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


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