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

Connection Closed Gracefully

答題得分者是:GrandRURU
P.D.
版主


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

發送簡訊給我
#1 引用回覆 回覆 發表時間:2017-06-19 16:01:19 IP:59.120.xxx.xxx 未訂閱
請問各位:

最近我的DataSnap出現這麼個狀況

環境 RadStudio XE 10.1 update 2 後端 FireBird 資料庫 前端使用 cds, 兩端的程式都是 win32(vcl)
在 cds 純 SQLconnection 讀取後端資料沒有問題,
但一旦下 cds.applyupdates(0) 就掛了, 前端顯示 Connection Closed Gracefully! 後端 DataSnap 的 Exception 則為 DSServer1 Error : Access violation at address 00900623 in module 'ServerCloud.exe'. Read of address 00000000
之前都好好的, 一度懷疑是資料庫有毀損(但讀取又沒問題), 也重建了還是一樣

如果 DataSanp server 是架在有裝 XE 的環境下都沒問題, 但移到沒有裝 XE 的電腦就出現, 也懷疑是不是 midas 在搞怪, 嘗試了uses midaslib 或者直接加發 midas.dll 到電腦, 都還是當機, 上網查了很多, 有的說是xe 的 tool options設定問題, 有的說了一堆好像也找不到排除的方法!

已經發生將近兩週了, 不知這個問題該朝什麼方向去查, 是前端的cds 嗎? 還是後端的 Sever 呢? 不知各位前輩還望指點一下迷津, 感恩~~
P.D.
版主


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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2017-06-21 01:03:41 IP:118.160.xxx.xxx 未訂閱
經過一番的折騰, 我 uses midaslib 問題又排除了(強調, 原本就有 uses midaslib), 所以還是那句老話, 七月快到了, 不知在搞什麼"鬼",

但仍有一個問題, 其實我之前已提過, 我想再提一次, 是否有前輩遇到過而且知道怎麼解決, 我真的查了網路快瘋了, 找了一堆, 也找到 delphi Drs. Bob 的解決, 但都無效
https://www.bobswart.nl/weblog/Blog.aspx?RootId=5:4930
就是有誰 user midaslib 成功編譯成 win64 的嗎?
我一編譯就是出現4個錯誤
Checking project dependencies...
Building ServerCloud.dproj (Release, Win64)
...
[dcc64 Error] MidasLib.pas(25): E1026 File not found: 'midas.obj'
[dcc64 Error] MidasLib.pas(26): E1026 File not found: 'bcd.obj'
[dcc64 Error] MidasLib.pas(22): E2065 Unsatisfied forward or external declaration: 'DllGetDataSnapClassObject'
[dcc64 Fatal Error] ServerMethodsUnit1.pas(10): F2063 Could not compile used unit 'midaslib.pas'
Failed
我查到 obj檔在這裡, ..\source\data\dsnap\midas 如果我把這個路徑加入到 win64 的 lib path
會得到3個錯誤
[dcc64 Error] MidasLib.pas(34): E2045 Bad object file format: 'c:\program files (x86)\embarcadero\studio\18.0\source\data\dsnap\midas\midas.obj'
[dcc64 Error] MidasLib.pas(22): E2065 Unsatisfied forward or external declaration: 'DllGetDataSnapClassObject'
[dcc64 Fatal Error] ServerMethodsUnit1.pas(10): F2063 Could not compile used unit 'midaslib.pas'

依據 Drs.Bob 的說法, midas.obj 是用 C 編譯出來的, 但只有32bit模組, 並沒有提供64的檔, 這個問題從XE4好像就存在了, 所以想請問各位, 是否有人編譯成功過(X64), 是如何排除的
GrandRURU
站務副站長


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

發送簡訊給我
#3 引用回覆 回覆 發表時間:2017-06-21 09:12:05 IP:59.120.xxx.xxx 未訂閱
如果您堅持是 ClientDataset 的問題,那有 FireDAC TFdMemTable 就用它吧

MidasLib 上次已經在聚會裡聊過也解決了

uses MidasLib 能解決就好,但不會是它的問題,解決方式我之前關於 DataSnap 的文章都有提到

===================引 用 P.D. 文 章===================
經過一番的折騰, 我 uses midaslib 問題又排除了(強調, 原本就有 uses midaslib), 所以還是那句老話, 七月快到了, 不知在搞什麼"鬼",

但仍有一個問題, 其實我之前已提過, 我想再提一次, 是否有前輩遇到過而且知道怎麼解決, 我真的查了網路快瘋了, 找了一堆, 也找到 delphi Drs. Bob 的解決, 但都無效
https://www.bobswart.nl/weblog/Blog.aspx?RootId=5:4930
就是有誰 user midaslib 成功編譯成 win64 的嗎?
我一編譯就是出現4個錯誤
Checking project dependencies...
Building ServerCloud.dproj (Release, Win64)
...
[dcc64 Error] MidasLib.pas(25): E1026 File not found: 'midas.obj'
[dcc64 Error] MidasLib.pas(26): E1026 File not found: 'bcd.obj'
[dcc64 Error] MidasLib.pas(22): E2065 Unsatisfied forward or external declaration: 'DllGetDataSnapClassObject'
[dcc64 Fatal Error] ServerMethodsUnit1.pas(10): F2063 Could not compile used unit 'midaslib.pas'
Failed
我查到 obj檔在這裡, ..\source\data\dsnap\midas 如果我把這個路徑加入到 win64 的 lib path
會得到3個錯誤
[dcc64 Error] MidasLib.pas(34): E2045 Bad object file format: 'c:\program files (x86)\embarcadero\studio\18.0\source\data\dsnap\midas\midas.obj'
[dcc64 Error] MidasLib.pas(22): E2065 Unsatisfied forward or external declaration: 'DllGetDataSnapClassObject'
[dcc64 Fatal Error] ServerMethodsUnit1.pas(10): F2063 Could not compile used unit 'midaslib.pas'

依據 Drs.Bob 的說法, midas.obj 是用 C 編譯出來的, 但只有32bit模組, 並沒有提供64的檔, 這個問題從XE4好像就存在了, 所以想請問各位, 是否有人編譯成功過(X64), 是如何排除的
P.D.
版主


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

發送簡訊給我
#4 引用回覆 回覆 發表時間:2017-06-27 12:56:52 IP:118.160.xxx.xxx 未訂閱
感謝ruru兄的提點, 上回Wang提供使用 Datasnap.midas是可以編譯成32或64,
只是這次我還是比較好奇 embd(現在應該是idrea), 既然提供了 midaslib.pas 的方法,
為什麼 midas.obj仍然始終未能支援x64? 所以特別發上來交流一下, 網路上也少見有人討論這段,
是不是大家都不用datasnap 發展64bit系統, 那真的是一件很令人遺憾的事,
不過不管怎麼, 我測試後發現, 雖然解決了x64編譯, 但firebird 對於支援32或64也並非是同一支dll,
firebird又有版本差異相容的問題, 所以我暫時放棄了x64建構的想法~
系統時間:2024-03-29 1:25:44
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!