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

請問為什麼ADOTable1+ClientDataSet如果有null時會有錯誤呢?

答題得分者是:chih_kuan
l90425
初階會員


發表:95
回覆:152
積分:49
註冊:2008-04-03

發送簡訊給我
#1 引用回覆 回覆 發表時間:2008-09-24 18:21:50 IP:59.125.xxx.xxx 未訂閱
請問各位大大為什麼ADOTable1+ClientDataSet如果有null時會有錯誤呢?
而ADOQuery1 ClientDataSet就不會有問題呢?

Could not convert variant of type (Null) into type(String) <--- 錯誤訊息
我用ADOConnection->ADOTable->DataSetProvider->ClientDataSet
一旦遇見有空白的欄位時會出現錯誤訊息

有辦法解決嗎?
如果有應該如何去設定呢?
謝謝!謝謝!
------
-謝謝大大熱心的回覆!謝謝!
編輯記錄
l90425 重新編輯於 2008-09-25 01:17:25, 註解 無‧
taishyang 重新編輯於 2008-09-25 11:10:08, 註解 無‧
chih_kuan
中階會員


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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2008-09-24 18:42:21 IP:59.126.xxx.xxx 未訂閱
能否告知.....數據庫的種類呢??
------
叔叔有練過,初學者不要學。
l90425
初階會員


發表:95
回覆:152
積分:49
註冊:2008-04-03

發送簡訊給我
#3 引用回覆 回覆 發表時間:2008-09-24 19:02:48 IP:59.125.xxx.xxx 未訂閱
Microsoft Office Access  *.mdb檔  
利用ODBC連線
------
-謝謝大大熱心的回覆!謝謝!
chih_kuan
中階會員


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

發送簡訊給我
#4 引用回覆 回覆 發表時間:2008-09-25 00:04:09 IP:59.126.xxx.xxx 未訂閱
建議幾種作法..
1.資料庫...設定預設值
2.試著把ClientDataSet 裡的 DisableStringTrim 設定為 True 試試看..

------
叔叔有練過,初學者不要學。
l90425
初階會員


發表:95
回覆:152
積分:49
註冊:2008-04-03

發送簡訊給我
#5 引用回覆 回覆 發表時間:2008-09-25 01:10:52 IP:59.125.xxx.xxx 未訂閱
我把資料庫的欄位都填滿數字(沒有空白值)
幾也設了DisableStringTrim 設定為 True
還是沒辦法!
很奇怪的是若用ADOTable1 DBGrid1沒有問題,
但是ADOTable1+DataSetProvider1+ClientDataSet1+DBGrid1就會出現
這個
"First chance exception at $7C812AEB. Exception class EVariantTypeCastError with message 'Could not convert variant of type (Null) into type (String)'. Process Project1.exe (2488)"問題。(難道是我有什麼設錯了嗎?)
請大大再幫幫忙謝謝!
謝謝大大的回覆!

===================引 用 chih_kuan 文 章===================
建議幾種作法..
1.資料庫...設定預設值
2.試著把ClientDataSet 裡的 DisableStringTrim 設定為 True 試試看..

------
-謝謝大大熱心的回覆!謝謝!
chih_kuan
中階會員


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

發送簡訊給我
#6 引用回覆 回覆 發表時間:2008-09-25 08:13:01 IP:211.23.xxx.xxx 未訂閱
能否一併告知相關操作呢?
(例如.你是在針對它做了什麼動作?或者說..它在什麼樣的狀況下..出現了如你所述的錯誤).


或者說..直接在 ADOTable 中..NewRecord() 中設定欄位預設值
------
叔叔有練過,初學者不要學。
編輯記錄
chih_kuan 重新編輯於 2008-09-25 08:17:55, 註解 無‧
l90425
初階會員


發表:95
回覆:152
積分:49
註冊:2008-04-03

發送簡訊給我
#7 引用回覆 回覆 發表時間:2008-09-25 10:40:55 IP:59.125.xxx.xxx 未訂閱
ADOTable1            Connection    設為  ADOConnection1
TableName 設為 date
Fields Editor... 設為 add All Field(Field裡面沒有再去設定)
Active設為 true

DataSetProvider1 DataSet 設為 ADOTable1

ClientDataSet1 ProviderName 設為 DataSetProvider1

DataSource1 DataSet 設為 ClientDataSet1
Active設為 true
其餘沒再去設定了
麻煩了
------
-謝謝大大熱心的回覆!謝謝!
編輯記錄
l90425 重新編輯於 2008-09-25 10:43:51, 註解 無‧
l90425 重新編輯於 2008-09-25 10:46:05, 註解 無‧
l90425 重新編輯於 2008-09-25 10:50:16, 註解 無‧
l90425
初階會員


發表:95
回覆:152
積分:49
註冊:2008-04-03

發送簡訊給我
#8 引用回覆 回覆 發表時間:2008-09-25 11:40:46 IP:59.125.xxx.xxx 未訂閱
大大根據我的測試
利用控制台的ODBC來設定資料來源
再利用 Microsoft OLE DB Provider ODBC Dirvers就會有問題
但是利用Microsoft Jet 4.0 OlE DB Provider就不會有問題 (但利用這個來連線就失去了控制台的ODBC設定意義)
請問這為什麼有辦法解決嗎?謝謝!

很奇怪為什麼ADOQuery ClientDataSet就不會有問題而且就只有ADOTable ClientDataSet才有問題
------
-謝謝大大熱心的回覆!謝謝!
編輯記錄
l90425 重新編輯於 2008-09-25 11:49:01, 註解 無‧
系統時間:2024-04-27 2:44:54
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!