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

請教Delphi5撰寫COM+使用ADO物件問題

缺席
sfour
一般會員


發表:5
回覆:5
積分:2
註冊:2003-05-21

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-04-22 13:36:05 IP:220.130.xxx.xxx 訂閱
各位大大:    請教一下,有沒有人試過利用Delphi5寫三層式構架的COM+    小妹在使用這樣的寫法一直都是OK,但是最近發現我的NB所編譯出來的Dll檔放到客戶的環境Run就會發生錯誤,錯誤點都是在ADOQUERY.Close()的事件上,不過每次錯誤訊息都不太一樣,大部份都是災難性失敗,但有時是"引數的個數錯誤或是指定了不正確的屬性",若是將同一個Dll放到客戶其他電腦並不會發生這樣的錯誤,但是我若是利用其他台電腦去編譯不做任何的修改,再重新掛上去就可以運作,我在想是不是我的NB或是客戶的環境少裝了什麼東西,或是我在編譯時少包了什麼東西進去,但是我有試過將Delphi的Component-->Install Packages-->build with runtime pachages不要打勾再編譯仍是不行。 請各位大大救救我吧! 以下為我部份的程式碼 try   if(FDM.ADOEXESQL.Active) then     FDM.ADOEXESQL.Close;         ------------錯誤發生在這行或是   sqlstr := 'SELECT * FROM A ';   FDM.ADOEXESQL.CommandText := sqlstr;   FDM.ADOEXESQL.Open;   if(FDM.ADOEXESQL.Eof) then    ......... finnal   if(FDM.ADOEXESQL.Active) then     FDM.ADOEXESQL.Close;         ---------------這行 end; 我的環境是windowXP Professional vresion 2002 SP1 Delphi版本為
chih_kuan
中階會員


發表:38
回覆:82
積分:54
註冊:2003-02-20

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-04-27 18:05:51 IP:203.70.xxx.xxx 未訂閱
有時候.....就是會找不出原因...... 但像這種問題的話...通常以我的經驗...來說. 我會先力求...編譯環境完全相同...(Ex : 修正程式安裝與否??..)..等等...以上建議
------
叔叔有練過,初學者不要學。
pcplayer99
尊榮會員


發表:142
回覆:740
積分:591
註冊:2003-01-21

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-05-05 23:04:38 IP:218.18.xxx.xxx 未訂閱
ADO本身采用的是COM架构,把它用到COM 里,可能需要注意COM架构里的线程同步的问题。 你在COM 里,使用到ADO的单元,在最前面加上 CoInitialize(nil),在结束的时候加上CoUninitialize. Just try try see...........
mustapha.wang
資深會員


發表:88
回覆:407
積分:274
註冊:2002-03-13

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-05-06 08:34:18 IP:210.22.xxx.xxx 未訂閱
给客户安装MDAC 2.8试试     久病成良医--多试 千人之诺诺,不如一士之谔谔--兼听
ko
資深會員


發表:28
回覆:785
積分:444
註冊:2002-08-14

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-05-06 16:42:00 IP:220.132.xxx.xxx 未訂閱
sfour 你好: 其實我也開發過一些程式,在桌上型pc中都可以run不論作業系統 但是一但轉到nb中就醫定會出現錯誤訊息,或白做工 (就是明明新增了卻沒有成功)一樣不論作業系統... 可是我也一直沒辦法找出原因,所以我建議你在nb開發的用在nb上 在pc開發的用在pc上... 沒辦法中的簡單辦法.....
------
======================
昏睡~
不昏睡~
不由昏睡~
sfour
一般會員


發表:5
回覆:5
積分:2
註冊:2003-05-21

發送簡訊給我
#6 引用回覆 回覆 發表時間:2007-07-06 18:10:54 IP:220.133.xxx.xxx 訂閱
不好意思,忘記回來回覆測試結果
關於這個問題後來我們發現解決方式
程式動一動後再編譯一次就好了而且是一定要增加行數
因為在測試時我們發現我只是加入showmessage就可以過
但是拿掉showmessage就不行
後來就突發奇想的只是把showmessage給mark掉不刪除該行程式碼
結果就好了



Jasonwong
版主


發表:49
回覆:918
積分:558
註冊:2006-10-27

發送簡訊給我
#7 引用回覆 回覆 發表時間:2007-07-06 19:06:02 IP:61.57.xxx.xxx 未訂閱
COM+ 是沒有 HANDLE 的, 你下 SHOWMESSAGE 當然會錯

===================引 用 sfour 文 章===================
不好意思,忘記回來回覆測試結果
關於這個問題後來我們發現解決方式
程式動一動後再編譯一次就好了而且是一定要增加行數
因為在測試時我們發現我只是加入showmessage就可以過
但是拿掉showmessage就不行
後來就突發奇想的只是把showmessage給mark掉不刪除該行程式碼
結果就好了



------
http://www.cobbler.tw

聰明的人,喜歡猜心;雖然每次都猜對了,卻失去了自己的心
傻氣的人,喜歡給心;雖然每次都被笑了,卻得到了別人的心
系統時間:2017-12-16 13:19:11
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!