2011-10-20 44 views
1

我們遇到了一個非常奇怪的問題。我們使用下面的表結構運行一個firebird 2.5數據庫。Delphi:使用ODBC的Firebird 2.5的ClientDataSet中的文本Blob

CREATE TABLE TEST (
    ID INTEGER NOT NULL, 
    MEMO BLOB SUB_TYPE 1 SEGMENT SIZE 80, 
    DATO TIMESTAMP 
); 

ALTER TABLE TEST ADD CONSTRAINT PK_TEST PRIMARY KEY (ID); 

我們在Windows 7

使用火鳥2.5.1 + ODBC 2.0.0.151我們使用Delphi XE,與TADOConnection + TADODataSet +的TDataSetProvider +的TClientdataSet連接到數據庫。

問題是我們在ClientDataSet中插入(或更新)新記錄並更新字段MEMO。 (TMemoField)(這一直在FB 1.5以及MS SQL服務器的所有版本中都能正常工作)。

現在使用firebird 2.5數據庫,我們得到錯誤消息「參數的類型錯誤,超出了可接受的範圍,或者彼此衝突。」當從Delphi IDE運行時,但如果我們在外面跑步則沒有錯誤。

最大的問題是當我們更新字段MEMO時,字段DATO的時間部分消失了。如果我們不包含MEMO字段,則一切正常。

另一個奇怪的是,如果我們直接使用TADODataSet來更新字段,一切正常。只有在通過ClientDataSet更新時,這是一個問題。

我做了一個小型演示項目來說明問題。

Test.zip(1090 KB): http://www.consultas.no/u/3037f738

所有的技巧和提示,將不勝感激!

最好的問候, 比約恩拉森

回答

0

您是否嘗試過使用TBlobField代替TMemoField的斑點?

對不起,我現在沒有德爾福可以在當地玩。

+0

對不起,但沒有幫助。同樣的問題。 –