又是DataSnap的問題

2021-09-08 17:22:28 字數 814 閱讀 3444

最近在除錯datasnap的程式,突然發現tclientdataset打不開了,報錯為dsnap200.bpl的非法位址訪問,如下圖:

很是怪異,乾脆新建工程,只有tsqlconnection、tsqlquery、tdatasetprovider和tclientdataset,如下圖:

開clientdataset1的時候還是報上面的錯誤,執行期也報非法位址訪問錯誤。開始還以為系統遭了,於是把6月份重整系統的c盤重新恢復了,但問題依舊,有點蒙了。後來在工程檔案中加入midaslib,將datasnap加入到程式中執行,卻正常了。猛然間反應過來,應該還是midas.dll的問題。一查c盤的midas.dll檔案,還真不少,如下圖:

由於安裝的是64位win7,發現syswow64下有個midas.dll檔案,重新將安裝路徑下bin目錄中32位版midas.dll進行註冊:

regsvr32 c:\program files (x86)\embarcadero\studio\14.0\bin\midas.dll

之後一切ok。

估計問題是不知什麼時候將64位版的midas.dll註冊了,導致ide開clientdataset時呼叫了64位版,而ide環境本身仍然還是32位的,所以報錯。

又是DataSnap的問題

最近在除錯datasnap的程式,突然發現tclientdataset打不開了,報錯為dsnap200.bpl的非法位址訪問,如下圖 很是怪異,乾脆新建工程,只有tsqlconnection tsqlquery tdatasetprovider和tclientdataset,如下圖 開clientd...

datasnap的執行緒池

新的datasnap使用indy10的執行緒池。不管你知不知道,datasnap都是使用執行緒池了,這和midas不同,midas預設是沒有執行緒池的。跟蹤indy10執行緒池類tidschedulerofthreadpool的 procedure tidschedulerofthreadpool....

datasnap的前世今生

隨著xe6,xe7,以及半年以後即將發布的xe8,datasnap將順應跨平台的需要,有可能的情況是這樣的 xe8,datasnap寫的中介軟體將可以執行在linux伺服器上面。大家都知道com是windows特有的東西,為了跨平台,com將被棄用。datasnap殘留的com基因的東西統統將被棄用...