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

此錯誤訊息要如何處理

答題得分者是:kevin2004
limary
初階會員


發表:41
回覆:109
積分:30
註冊:2007-01-11

發送簡訊給我
#1 引用回覆 回覆 發表時間:2008-10-24 16:03:43 IP:61.219.xxx.xxx 未訂閱
各位前輩:
小妹在Access/MSSQL寫了幾個系統,最近試者將之轉移到WinPostgreSQL
上來執行。我有些Form是用Ado,有些Form是用BDE聯接。會出現以下的訊息而
當機:『提供不一致或不完全的資訊,導致參數物件不適當地被拒』。
我仔細看過好幾遍我的表格結構,它確定是很常見很標準的Int/Char/VarChar
等等,這些是很多資料庫都接受的欄位型態,所以應該不是造成問題的原因。
而且很奇怪,有的Form可以開表,有的就不行而當出來了。我仔細去看這些
有問題的表格結構,發現它們也是很普通很常見的欄位型態,所以應該不是由
Access/MSSQL移到PostgreSQL後型態的問題。
我試了好幾個星期了,無法解決,可否請前輩幫忙指點一下。謝謝。
darnell
版主


發表:25
回覆:103
積分:145
註冊:2003-03-04

發送簡訊給我
#2 引用回覆 回覆 發表時間:2008-10-24 17:09:36 IP:60.250.xxx.xxx 訂閱
依據妳所提的錯誤訊息請檢查Query之類的物件應該有傳入Param吧
將DataType(若型態是字串則ftstring),Size,Value的Type(若型態是字串則OleStr)
看看是不是有漏掉沒設定好的地方

另外印象中ado好像很難連結postgres吧?你是如何連結??
想要使用postgres建議使用zeoslib元件來做連結
編輯記錄
darnell 重新編輯於 2008-10-24 17:13:44, 註解 無‧
darnell 重新編輯於 2008-10-24 17:16:38, 註解 無‧
limary
初階會員


發表:41
回覆:109
積分:30
註冊:2007-01-11

發送簡訊給我
#3 引用回覆 回覆 發表時間:2008-10-24 20:56:28 IP:61.219.xxx.xxx 未訂閱
===================引 用 darnell 文 章===================
另外印象中ado好像很難連結postgres吧?你是如何連結??

我是用psqlODBC去聯Postgres的,用在我其他以postgresql主要開發運作平台的
幾個AP的使用情形是還好。

===================引 用 darnell 文 章===================
想要使用postgres建議使用zeoslib元件來做連結

正搜集研讀zeoslib資料中,先謝謝了。
limary
初階會員


發表:41
回覆:109
積分:30
註冊:2007-01-11

發送簡訊給我
#4 引用回覆 回覆 發表時間:2008-10-24 20:59:21 IP:61.219.xxx.xxx 未訂閱
===================引 用 darnell 文 章===================
依據妳所提的錯誤訊息請檢查Query之類的物件應該有傳入Param吧
將DataType(若型態是字串則ftstring),Size,Value的Type(若型態是字串則OleStr)
看看是不是有漏掉沒設定好的地方

是否能請前輩能再仔細說明一下,小妹有點不太懂
先謝謝了
darnell
版主


發表:25
回覆:103
積分:145
註冊:2003-03-04

發送簡訊給我
#5 引用回覆 回覆 發表時間:2008-10-24 22:26:13 IP:59.115.xxx.xxx 訂閱
這是依據妳之前說的錯誤訊息『提供不一致或不完全的資訊,導致參數物件不適當地被拒』所做的推斷
因為如果DataSet中的sql語法用到動態參數傳入比如select * from xxx where id=:id
那就需要設定DataSet中的param的參數項目,如果設定錯誤,比如將string設定成int
就會出現你說的訊息,但是如果你之前已經運作正常,只是因為換了資料庫就出現錯誤
可能就是資料庫結構的差異在adoDataSet原始碼中沒有被適當做處理(畢竟ado物件還是比較適用於Mssql),
因此基本上還是建議妳採用zeoslib元件比較不會產生奇怪的錯誤訊息

===================引 用 limary 文 章===================
是否能請前輩能再仔細說明一下,小妹有點不太懂
先謝謝了
kevin2004
資深會員


發表:18
回覆:463
積分:416
註冊:2005-05-29

發送簡訊給我
#6 引用回覆 回覆 發表時間:2008-10-25 05:54:20 IP:61.219.xxx.xxx 未訂閱
Access/MSSQL...轉移到WinPostgreSQL上來執行。...會出現以下的訊息而
當機:『提供不一致或不完全的資訊,導致參數物件不適當地被拒』。
====>小弟補充一下,試在長好此AdoQuery1的SQL後加以下碼:
for II := 0 to AdoQuery1.Parameters.Count -1 do
begin
if AdoQuery1.Parameters.Items[II].DataType =
ftunKnown then
AdoQuery1.parameters.items[II].DataType :=
ftString ;
end ;
====>應該就可以了
有些Form是用Ado,有些Form是用BDE聯接。

====>ADO確定是沒問題,可是BDE我就太久太久沒用了,不太有把握。
====>剛才試了一下,Query是沒有parameters這個項,而是Params,
====> 所以相關碼要改成這個才行通過Compiler。我也試者要降在Query
====> 的環境產生你講的錯誤訊息,以測試此方是否可用,可是實在是沒
====> 玩BDE太久太久,一下子測不出來確定的訊息。
====>不過,在Ado環境下,我剛才講的,確定沒問題。
------
Kevin
編輯記錄
kevin2004 重新編輯於 2008-10-25 05:57:17, 註解 無‧
hagar
版主


發表:143
回覆:4056
積分:4445
註冊:2002-04-14

發送簡訊給我
#7 引用回覆 回覆 發表時間:2008-10-25 09:07:16 IP:220.137.xxx.xxx 未訂閱
提供不一致或不完全的資訊,導致參數物件不適當地被拒

上一句錯誤錯訊除了 "不一致" 這一部份外, 還有 "不完全" 這一部份
試著檢查是不是有參數未提供參數值?SQL 是否正確?
kevin2004
資深會員


發表:18
回覆:463
積分:416
註冊:2005-05-29

發送簡訊給我
#8 引用回覆 回覆 發表時間:2008-10-27 05:48:08 IP:61.219.xxx.xxx 未訂閱
印象中ado好像很難連結postgres吧?
====>還好啦,我個人經驗是還可以。而且因為通常一個系統要跨越好幾個DB,所以
====> 用ADO還好
------
Kevin
編輯記錄
kevin2004 重新編輯於 2008-10-27 05:48:51, 註解 無‧
limary
初階會員


發表:41
回覆:109
積分:30
註冊:2007-01-11

發送簡訊給我
#9 引用回覆 回覆 發表時間:2008-10-27 22:44:09 IP:61.219.xxx.xxx 未訂閱
    謝謝版主的原理的詳盡說明及Kevin2004前輩惠示的程式碼,小妹這兩天參
照程式碼將整個系統無誤成功移殖到PostgreSQL上來了。真是非常感謝。
系統時間:2024-11-10 20:48:55
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!