全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:2249
推到 Plurk!
推到 Facebook!

有關ApplyUpdate 的問題(Exception)

缺席
P.D.
版主


發表:603
回覆:4038
積分:3874
註冊:2006-10-31

發送簡訊給我
#1 引用回覆 回覆 發表時間:2014-03-24 14:58:04 IP:59.120.xxx.xxx 未訂閱
實在很抱歉
我又又來了, 怎麼xe5問題這麼多

我使用 ClientDataSet 回寫 Applyupdate(0) 或 (-1)

在server端有一支 ServerMethod 接收

我發現安裝在 server 2003 上, 都會出現 Exception in safecall method
查了網路也提到這個問題是 xe5 的問題, 並且也指出在 xe5 update2 有修正
而且在官網 http://qc.embarcadero.com/wc/qcmain.aspx?d=118633 也指出已修正(fixed),

我也更新到 upd2 (hot fix4), 但編譯出來的server端程式還是會如此,
可是我放在 server 2008 的確不會有這個問題 (測試在 xp, win7 有的會, 有的不會, win8, win8.1 也會)
GrandRURU
站務副站長


發表:240
回覆:1680
積分:1874
註冊:2005-06-21

發送簡訊給我
#2 引用回覆 回覆 發表時間:2014-03-25 09:30:29 IP:59.120.xxx.xxx 訂閱
ApplyUpdate 出錯可能有:
1. ClientDataSet 和 WebModule 失去連線 ( SQLConnection -> DSServer )
2. ApplyUpdate 過程中出現封包異常的問題 (ClientDataSet -> DataSetProvider )

WebModule:
1. 檢查 DSServer 的事件( O nConnect, O nDisconnect, O nError 等)

ServerModule :
1. 可以在 ApplyUpdate 前先使用 ClientDataset.DataRequest 看看 DataSetProvider 是否能正常接受
2. DataSetProvider O nUpdateError 有沒有出現錯誤

簡單的說,就是要判斷流程是在 WebModule 還是 ServerMethods 單元中出錯

這個問題應該無關 FireMonkey 架構才是

===================引 用 P.D. 文 章===================
實在很抱歉
我又又來了, 怎麼xe5問題這麼多

我使用 ClientDataSet 回寫 Applyupdate(0) 或 (-1)

在server端有一支 ServerMethod 接收

我發現安裝在 server 2003 上, 都會出現 Exception in safecall method
查了網路也提到這個問題是 xe5 的問題, 並且也指出在 xe5 update2 有修正
而且在官網 http://qc.embarcadero.com/wc/qcmain.aspx?d=118633 也指出已修正(fixed),

我也更新到 upd2 (hot fix4), 但編譯出來的server端程式還是會如此,
可是我放在 server 2008 的確不會有這個問題 (測試在 xp, win7 有的會, 有的不會, win8, win8.1 也會)
P.D.
版主


發表:603
回覆:4038
積分:3874
註冊:2006-10-31

發送簡訊給我
#3 引用回覆 回覆 發表時間:2014-03-25 15:19:29 IP:118.160.xxx.xxx 未訂閱
感謝ruru兄的說明, 
不過目前有幾個不解的
1. 我放在 window server 2008, win7, xp 上 ServerMethod 沒有問題, 唯獨於在 window 2003 會出此狀況
2. 我在測試調出資料都沒有問題, 所以 失去連線或封包異常的問題應該不存在, 只要在資料要applyupdate(有blob)才出現
3. 因為在 embd官網找到該篇說明, 有指出進行 xe5 update fixed 的情況, 所以才會朝是否為xe5 的狀況研判
目前訊息還不是很明朗, 還得做很多測試

===================引 用 GrandRURU 文 章===================
ApplyUpdate 出錯可能有:
1. ClientDataSet 和 WebModule 失去連線 ( SQLConnection -> DSServer )
2. ApplyUpdate 過程中出現封包異常的問題 (ClientDataSet -> DataSetProvider )

WebModule:
1. 檢查 DSServer 的事件( O nConnect, O nDisconnect, O nError 等)

ServerModule :
1. 可以在 ApplyUpdate 前先使用 ClientDataset.DataRequest 看看 DataSetProvider 是否能正常接受
2. DataSetProvider O nUpdateError 有沒有出現錯誤

簡單的說,就是要判斷流程是在 WebModule 還是 ServerMethods 單元中出錯

這個問題應該無關 FireMonkey 架構才是

===================引 用 P.D. 文 章===================
實在很抱歉
我又又來了, 怎麼xe5問題這麼多

我使用 ClientDataSet 回寫 Applyupdate(0) 或 (-1)

在server端有一支 ServerMethod 接收

我發現安裝在 server 2003 上, 都會出現 Exception in safecall method
查了網路也提到這個問題是 xe5 的問題, 並且也指出在 xe5 update2 有修正
而且在官網 http://qc.embarcadero.com/wc/qcmain.aspx?d=118633 也指出已修正(fixed),

我也更新到 upd2 (hot fix4), 但編譯出來的server端程式還是會如此,
可是我放在 server 2008 的確不會有這個問題 (測試在 xp, win7 有的會, 有的不會, win8, win8.1 也會)
P.D.
版主


發表:603
回覆:4038
積分:3874
註冊:2006-10-31

發送簡訊給我
#4 引用回覆 回覆 發表時間:2014-03-25 18:49:41 IP:118.160.xxx.xxx 未訂閱
整個下午都在查這個問題, 越查越心寒, 這項討論已經查google, yahoo網超過上千篇的討論, 
沒有看到一個有解的, 如果解不了的話, 那整個xe5 for Android 不就宣告放棄了?
GrandRURU
站務副站長


發表:240
回覆:1680
積分:1874
註冊:2005-06-21

發送簡訊給我
#5 引用回覆 回覆 發表時間:2014-03-26 08:39:47 IP:59.120.xxx.xxx 訂閱
1. 我還是不明白版大下 ApplyUpdate 時所出現的 Exception 是在 Android 下所產生的,還是送到 REST Service 後所產生的?
2. 如果沒有用到很特別的效果,那 REST Service 或許可以考慮使用 XE 重建再試試看

=====================================================
就我之前測試 XE5(第一版) 開發 DataSnap iOS App 時

當時的 XE5 非常的不穩定(貌似 Fix 後也好不到哪裡去?),通常 Debug 1 次後 Debuger 有很大的機率會當掉

不過也因為沒有用得很深,所以把原先 DataSnap 的 Code 使用 XE 來重建,就正常多了,在追 Code 時也相對簡單許多

也找到一些 DataSnap 的 Bugs 並回報 EMBT QC,那些 Bugs 都是從 XE 以來就一直存在著的了

===================引 用 P.D. 文 章===================
整個下午都在查這個問題, 越查越心寒, 這項討論已經查google, yahoo網超過上千篇的討論,
沒有看到一個有解的, 如果解不了的話, 那整個xe5 for Android 不就宣告放棄了?
P.D.
版主


發表:603
回覆:4038
積分:3874
註冊:2006-10-31

發送簡訊給我
#6 引用回覆 回覆 發表時間:2014-03-26 14:37:33 IP:118.160.xxx.xxx 未訂閱
我是在手機上使用 TClientDataSet 對 Server端 DataSnap 進行 Applyupdate
所引發的錯誤是在手機上

===================引 用 GrandRURU 文 章===================
1. 我還是不明白版大下 ApplyUpdate 時所出現的 Exception 是在 Android 下所產生的,還是送到 REST Service 後所產生的?
2. 如果沒有用到很特別的效果,那 REST Service 或許可以考慮使用 XE 重建再試試看

=====================================================
就我之前測試 XE5(第一版) 開發 DataSnap iOS App 時

當時的 XE5 非常的不穩定(貌似 Fix 後也好不到哪裡去?),通常 Debug 1 次後 Debuger 有很大的機率會當掉

不過也因為沒有用得很深,所以把原先 DataSnap 的 Code 使用 XE 來重建,就正常多了,在追 Code 時也相對簡單許多

也找到一些 DataSnap 的 Bugs 並回報 EMBT QC,那些 Bugs 都是從 XE 以來就一直存在著的了

===================引 用 P.D. 文 章===================
整個下午都在查這個問題, 越查越心寒, 這項討論已經查google, yahoo網超過上千篇的討論,
沒有看到一個有解的, 如果解不了的話, 那整個xe5 for Android 不就宣告放棄了?
GrandRURU
站務副站長


發表:240
回覆:1680
積分:1874
註冊:2005-06-21

發送簡訊給我
#7 引用回覆 回覆 發表時間:2014-03-27 08:11:17 IP:211.79.xxx.xxx 訂閱
這樣的話我只能想到一個笨解

假設ServerMethods 是可以正常工作的

那麼
1. ClienyDataSet 存成 XML
2. XML 送回SERVER
3. 存回 clientdataset
4. 連結 DataSetProvider
5. ApplyUpdate

或許能先解決 P.D. 版大的問題

===================引 用 P.D. 文 章===================
我是在手機上使用 TClientDataSet 對 Server端 DataSnap 進行 Applyupdate
所引發的錯誤是在手機上

===================引 用 GrandRURU 文 章===================
1. 我還是不明白版大下 ApplyUpdate 時所出現的 Exception 是在 Android 下所產生的,還是送到 REST Service 後所產生的?
2. 如果沒有用到很特別的效果,那 REST Service 或許可以考慮使用 XE 重建再試試看

=====================================================
就我之前測試 XE5(第一版) 開發 DataSnap iOS App 時

當時的 XE5 非常的不穩定(貌似 Fix 後也好不到哪裡去?),通常 Debug 1 次後 Debuger 有很大的機率會當掉

不過也因為沒有用得很深,所以把原先 DataSnap 的 Code 使用 XE 來重建,就正常多了,在追 Code 時也相對簡單許多

也找到一些 DataSnap 的 Bugs 並回報 EMBT QC,那些 Bugs 都是從 XE 以來就一直存在著的了

===================引 用 P.D. 文 章===================
整個下午都在查這個問題, 越查越心寒, 這項討論已經查google, yahoo網超過上千篇的討論,
沒有看到一個有解的, 如果解不了的話, 那整個xe5 for Android 不就宣告放棄了?
P.D.
版主


發表:603
回覆:4038
積分:3874
註冊:2006-10-31

發送簡訊給我
#8 引用回覆 回覆 發表時間:2014-03-27 09:44:36 IP:118.169.xxx.xxx 未訂閱
sorry, DataSnap 對我已經是很新的東西, 
xml 的做法我完全一無所知, 不知有何文獻可以參考哦!

===================引 用 GrandRURU 文 章===================
這樣的話我只能想到一個笨解

假設ServerMethods 是可以正常工作的

那麼
1. ClienyDataSet 存成 XML
2. XML 送回SERVER
3. 存回 clientdataset
4. 連結 DataSetProvider
5. ApplyUpdate

或許能先解決 P.D. 版大的問題
GrandRURU
站務副站長


發表:240
回覆:1680
積分:1874
註冊:2005-06-21

發送簡訊給我
#9 引用回覆 回覆 發表時間:2014-03-27 10:31:06 IP:59.120.xxx.xxx 訂閱
ClientDataSet 存成 XML 可以這樣做:

ClientDataSet1.SaveToFile('D:\Temp\MyXMLFile.xml', dfXMLUTF8);

能夠存成 XML 就能轉成 String

再傳到 Server 就簡單多了

===================引 用 P.D. 文 章===================
sorry, DataSnap 對我已經是很新的東西,
xml 的做法我完全一無所知, 不知有何文獻可以參考哦!

P.D.
版主


發表:603
回覆:4038
積分:3874
註冊:2006-10-31

發送簡訊給我
#10 引用回覆 回覆 發表時間:2014-04-01 22:49:42 IP:118.160.xxx.xxx 未訂閱
經高人指點後, 此問題已解決

原因是midas.dll 的版本問題,
我測試的環境原已有midas(delphi 5提供的),
改用 xe5 內附的 midas 就解決了
可能是 midas 為配合 xe5 的 string型別有改版吧, 我猜的
leveon
資深會員


發表:30
回覆:389
積分:303
註冊:2012-02-12

發送簡訊給我
#11 引用回覆 回覆 發表時間:2014-04-02 14:22:20 IP:61.231.xxx.xxx 訂閱
路過 插花

直接 use MidasLib
可以不用發佈 midas.dll 就可免除版本問題
Midas問題一直很多 直到Delphi 2005才趨於穩定

Delphi 易主後 有公佈midas C 的source code
一大堆看似補洞的程式
一大堆 goto exit , goto xxx
很多功能看似有實作 又好像沒做完
很難修改

===================引 用 P.D. 文 章===================
經高人指點後, 此問題已解決

原因是midas.dll 的版本問題,
我測試的環境原已有midas(delphi 5提供的),
改用 xe5 內附的 midas 就解決了
可能是 midas 為配合 xe5 的 string型別有改版吧, 我猜的
系統時間:2024-04-19 22:01:45
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!