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

Compiler完後Project出現的錯誤訊息

尚未結案
jeamvan
一般會員


發表:8
回覆:7
積分:3
註冊:2003-06-02

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-11-30 16:36:40 IP:211.23.xxx.xxx 未訂閱
各位大大: 就是我已經Complier完後 就跑出下面的訊息錯誤: ---------------------------------------------------------------- Project Project1.exe raised exception class EVariant Type CastError with message'Could not convert variant of type(Null) into type(String)'.Process stopped. Use stop or Run to continue ---------------------------------------------------------------- 之前有瀏覽過別人有這樣的問題 只是看不懂別人回應的方法 所以決定再請高手幫忙解答一下 我的問題有幾點: 1.我用的是ADO的元件 資料庫是Access 用BCB6.0撰寫 原本連結的方式適用Microsoft Jet4.0 OLE DB Provider 就不會有上面訊息出現,但是改為Microsoft OLE DB Providerfor ODBC Driver時候,complier完就會有訊息出現,想問為何有這樣的情形?? 2.Complier完後按掉錯誤訊息 仍然可以操作 直接去點取執行檔也沒問題,但是曾有突然按下某個按鈕的時候 就出現奇怪的訊息類似Read000x??錯誤的問題.. 但是之後在測試就沒有看到 所以無法明確告知是怎樣的訊息 3.ADO的Connection元件我是放在一個DataModule裡面 讓每個Form都連結到DataModule使用Connection元件 而且主form是fsMDIForm 請問如何在哪個地方做修正才不會有上面訊息出現    以上的敘述希望可以讓高手了解我的問題 也希望能夠回應一下,拜託了~ src="http://delphi.ktop.com.tw/loadfile.php?TOPICID=12944754&CC=289506"> 2. 發表人 - jeamvan 於 2003/11/30 17:07:06
jeamvan
一般會員


發表:8
回覆:7
積分:3
註冊:2003-06-02

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-11-30 18:06:10 IP:211.23.xxx.xxx 未訂閱
[quote] 各位大大: 就是我已經Complier完後 就跑出下面的訊息錯誤: ---------------------------------------------------------------- Project Project1.exe raised exception class EVariant Type CastError with message'Could not convert variant of type(Null) into type(String)'.Process stopped. Use stop or Run to continue ---------------------------------------------------------------- 之前有瀏覽過別人有這樣的問題 只是看不懂別人回應的方法 所以決定再請高手幫忙解答一下 我的問題有幾點: 1.我用的是ADO的元件 資料庫是Access 用BCB6.0撰寫 原本連結的方式適用Microsoft Jet4.0 OLE DB Provider 就不會有上面訊息出現,但是改為Microsoft OLE DB Providerfor ODBC Driver時候,complier完就會有訊息出現,想問為何有這樣的情形?? 2.Complier完後按掉錯誤訊息 仍然可以操作 直接去點取執行檔也沒問題,但是曾有突然按下某個按鈕的時候 就出現奇怪的訊息類似Read000x??錯誤的問題.. 但是之後在測試就沒有看到 所以無法明確告知是怎樣的訊息 3.ADO的Connection元件我是放在一個DataModule裡面 讓每個Form都連結到DataModule使用Connection元件 而且主form是fsMDIForm 請問如何在哪個地方做修正才不會有上面訊息出現    以上的敘述希望可以讓高手了解我的問題 也希望能夠回應一下,拜託了~ --------------------------------------- 發表人 -
jeamvan
一般會員


發表:8
回覆:7
積分:3
註冊:2003-06-02

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-11-30 18:17:32 IP:211.22.xxx.xxx 未訂閱
引言: [quote] 各位大大: 就是我已經Complier完後 就跑出下面的訊息錯誤: ---------------------------------------------------------------- Project Project1.exe raised exception class EVariant Type CastError with message'Could not convert variant of type(Null) into type(String)'.Process stopped. Use stop or Run to continue ---------------------------------------------------------------- 之前有瀏覽過別人有這樣的問題 只是看不懂別人回應的方法 所以決定再請高手幫忙解答一下 我的問題有幾點: 1.我用的是ADO的元件 資料庫是Access 用BCB6.0撰寫 原本連結的方式適用Microsoft Jet4.0 OLE DB Provider 就不會有上面訊息出現,但是改為Microsoft OLE DB Providerfor ODBC Driver時候,complier完就會有訊息出現,想問為何有這樣的情形?? 2.Complier完後按掉錯誤訊息 仍然可以操作 直接去點取執行檔也沒問題,但是曾有突然按下某個按鈕的時候 就出現奇怪的訊息類似Read000x??錯誤的問題.. 但是之後在測試就沒有看到 所以無法明確告知是怎樣的訊息 3.ADO的Connection元件我是放在一個DataModule裡面 讓每個Form都連結到DataModule使用Connection元件 而且主form是fsMDIForm 請問如何在哪個地方做修正才不會有上面訊息出現 以上的敘述希望可以讓高手了解我的問題 也希望能夠回應一下,拜託了~ ----------------------------- 對不起還是一樣解決不了><~ < face="Verdana, Arial, Helvetica">< >< > 發表人 - jeamvan 於 2003/11/30 19:10:01
leo2568
中階會員


發表:54
回覆:124
積分:70
註冊:2003-09-21

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-11-30 23:21:17 IP:61.217.xxx.xxx 未訂閱
引言:突然按下某個按鈕的時候 就出現奇怪的訊息類似Read000x??錯誤的問題..
是不是那個某個按鈕所觸發的事件中,有型態不符的問題,檢查一下 type(Null) into type(String) 發表人 - leo2568 於 2003/11/30 23:41:53
jeamvan
一般會員


發表:8
回覆:7
積分:3
註冊:2003-06-02

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-11-30 23:40:41 IP:61.219.xxx.xxx 未訂閱
引言:
引言:突然按下某個按鈕的時候 就出現奇怪的訊息類似Read000x??錯誤的問題..
是不是那個〔red]某個按鈕所觸發的事件中,有型態不符的問題type(Null) into type(String)
恩..目前已經沒有那個錯誤 後來我發現我按F8慢慢去找 發現 Forms.hpp 執行 Application->CreateForm(__classid(TDataModule1), &DataModule1); (註:我的ADOConnection是放在DataModule中 全部的ADO元件都是共同連到這個上面的) 完後 就會跳出DataBase Login的畫面 因為我是用Access而且用Microsoft OLE DB Providerfor ODBC Driver做ConnectionString的 所以沒有使用者和密碼 所以當我按下確定之後 馬上就跑出 Project Project1.exe raised exception class EVariant Type CastError with message'Could not convert variant of type(Null) into type(String)'.Process stopped. Use stop or Run to continue 的畫面了 雖然按下ok後 執行事沒有問題 但是 我想知道是我哪邊有問題 因為不知道能不能擔保這樣的執行檔是一定不會有問題 麻煩各位大大了>,<~(對不起因為很急著解決 所以一值回應之前的問題)
leo2568
中階會員


發表:54
回覆:124
積分:70
註冊:2003-09-21

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-11-30 23:57:56 IP:61.217.xxx.xxx 未訂閱
先試著 LoginPrompt:= False 或試著使用 Microsoft Jet4.0 OLE DB Provider 連結. 發表人 - leo2568 於 2003/12/01 00:06:12 先測試是否為登入的問題,再參考下列連結: http://delphi.ktop.com.tw/topic.php?TOPIC_ID=37015 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=36358 發表人 - leo2568 於 2003/12/01 00:43:00
jeamvan
一般會員


發表:8
回覆:7
積分:3
註冊:2003-06-02

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-12-01 00:09:25 IP:61.219.xxx.xxx 未訂閱
[/quote] 先試著 LoginPrompt:= False 或試著使用 Microsoft Jet4.0 OLE DB Provider 連結. [/quote] 我用的是ADO的元件 資料庫是Access 用BCB6.0撰寫 原本連結的方式適用Microsoft Jet4.0 OLE DB Provider 就不會有上面訊息出現,但是改為Microsoft OLE DB Providerfor ODBC Driver時候,complier完就會有訊息出現,到現在還是找不出來@@!
timhuang
尊榮會員


發表:78
回覆:1815
積分:1608
註冊:2002-07-15

發送簡訊給我
#8 引用回覆 回覆 發表時間:2003-12-01 09:54:28 IP:203.95.xxx.xxx 未訂閱
hi, 那可以連的進去 access 檔嗎? 對 access 檔有無加上密碼呢?
jeamvan
一般會員


發表:8
回覆:7
積分:3
註冊:2003-06-02

發送簡訊給我
#9 引用回覆 回覆 發表時間:2003-12-01 18:08:37 IP:211.22.xxx.xxx 未訂閱
引言: hi, 那可以連的進去 access 檔嗎? 對 access 檔有無加上密碼呢?
就是complie完後 會出現那樣的訊息,按完ok之後 程式可以正常執行 是可以連到Access 我沒有加密碼 而且在尚未Compile之前的程式撰寫中, 把ADOConnection的Connected設為true都沒有問題 只是很納悶 為啥麼Compile完後會產生那樣的錯誤訊息出來???
timhuang
尊榮會員


發表:78
回覆:1815
積分:1608
註冊:2002-07-15

發送簡訊給我
#10 引用回覆 回覆 發表時間:2003-12-01 18:38:44 IP:203.95.xxx.xxx 未訂閱
可以麻煩你將程式和 access 檔上傳上來, 給大家看看問題在那個地方. (若是可以的話)
jcjroc
高階會員


發表:21
回覆:279
積分:115
註冊:2002-09-18

發送簡訊給我
#11 引用回覆 回覆 發表時間:2003-12-02 12:22:32 IP:211.75.xxx.xxx 未訂閱
ㄏㄏㄏ,你的問題在我之前自己由OLE與COM寫ADO物件時也發生過 但因為整個ADO是我自己寫而不是用Borland所附的ADO物件,所以像妳那種問題我早已經在Source Code中處理掉. 至於你的問題應該可以在OnWillConnect中處理掉,我已忘了BCB到底是先呼叫OnLogInc還是OnWillConnect. 還有,當你在IDE中執行程式(尤其是Degbug模式下),只要有任何的Exception產生 IDE都會攔截並顯示出來,但在Release(或非透過IDE)的狀態下,如果你有用try..catch處裡過就不會跑出那個Dialog.    至於你Post上來的Error Message是告訴你 Variant(NULL)無法轉型為Variant(String).因為ADO基本上是一個OLE,所以對於許多關於字串的參數都是接收BSTR.而BCB無法將Variant(NULL)轉變成BSTR.你可以查一下Help看他轉型成甚麼(我在SourceCode中如果字串是NULL,我是直接傳TVariant(L""));    最後如果要了解其中原委,建議你自己去實做一個ADO物件,其比較快的方式是去K VCL有關ADO的Source Code再去翻遍MSDN相關議題. 如果你要那樣做,祝你早日成佛(我當初為了自己做ADO而撞的滿頭包,也因此得到成佛)ㄏㄏㄏ. < >< >
jeamvan
一般會員


發表:8
回覆:7
積分:3
註冊:2003-06-02

發送簡訊給我
#12 引用回覆 回覆 發表時間:2003-12-12 22:57:51 IP:163.28.xxx.xxx 未訂閱
引言: ㄏㄏㄏ,你的問題在我之前自己由OLE與COM寫ADO物件時也發生過 但因為整個ADO是我自己寫而不是用Borland所附的ADO物件,所以像妳那種問題我早已經在Source Code中處理掉. 至於你的問題應該可以在OnWillConnect中處理掉,我已忘了BCB到底是先呼叫OnLogInc還是OnWillConnect. 還有,當你在IDE中執行程式(尤其是Degbug模式下),只要有任何的Exception產生 IDE都會攔截並顯示出來,但在Release(或非透過IDE)的狀態下,如果你有用try..catch處裡過就不會跑出那個Dialog. 至於你Post上來的Error Message是告訴你 Variant(NULL)無法轉型為Variant(String).因為ADO基本上是一個OLE,所以對於許多關於字串的參數都是接收BSTR.而BCB無法將Variant(NULL)轉變成BSTR.你可以查一下Help看他轉型成甚麼(我在SourceCode中如果字串是NULL,我是直接傳TVariant(L"")); 最後如果要了解其中原委,建議你自己去實做一個ADO物件,其比較快的方式是去K VCL有關ADO的Source Code再去翻遍MSDN相關議題. 如果你要那樣做,祝你早日成佛(我當初為了自己做ADO而撞的滿頭包,也因此得到成佛)ㄏㄏㄏ. < >< >
ㄜ..因為我還是一個新手>,< 而且因為有時間壓力 請問有哪位高手可以指點一下 我想直些用他的元件來使用(因為目前沒有功力自己撰寫@@!) 不知道該加怎樣的程式碼來解決? 對不起 真的很急 ! 謝謝各位了
系統時間:2024-05-02 7:43:13
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!