非常に奇妙な問題に直面しています。私たちは次のテーブル構造を持つFirebird 2.5データベースを実行しています。 TADOConnectionの+のTADODataSet + TDataSetProvider + TClientDataSetのは、データベースに接続するために我々はDelphi:Firebird 2.5のClientDataSetのテキストブロブ(ODBCを使用)
のWindows 7上のFirebird 2.5.1 + ODBC 2.0.0.151を使用している
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);
私たちは、デルファイXEを使用しています。
問題は、新しいレコードをClientDataSetに挿入(または更新)し、フィールドMEMOを更新するときです。 (TMemoField)(これは、FB 1.5およびすべてのバージョンのMS SQLサーバーで動作しています)。
Firebird 2.5データベースでは、「引数のタイプが間違っているか、許容範囲外か、互いに競合しています」というエラーメッセージが表示されます。 Delphi IDEから実行していても、外部で実行するとエラーは発生しません。
フィールドMEMOを更新すると、フィールドDATOの時刻部分が消えてしまうのが大きな問題です。 MEMOフィールドを含まない場合、すべてがOKです。
他の奇妙なことは、TADODataSetを直接使用してフィールドを更新すると、すべて正常に動作するということです。 ClientDataSetで更新された場合にのみ問題になります。
私はこの問題を説明する小さなデモプロジェクトを作成しました。
Test.zip(1090キロバイト): http://www.consultas.no/u/3037f738
すべてのヒントやヒントが高く評価されます!
敬具、 ビョルン・ラーセン
申し訳ありませんが、それは役に立たなかったです。同じ問題。 –