状況は次のとおりです。XE3 (anyDAC) から XE7 (Firedac) にアップグレードすると、Informix で 255 文字を超える文字フィールドを更新する際に突然問題が発生します。
エラーが発生します:
'[FireDAC][Phys][ODBC]-345. 変数 [#1] のデータが大きすぎます。最大長さ = [256]、実際の長さ = [1000] ヒント: TFDParam.Size をより大きな値に設定します'
問題は、「applyupdates」の使用と組み合わせてキャッシュされた更新モードを使用しているため、設定するパラメーターがありません (PK を除く)...
参考: レコードを更新するテーブル定義:
CREATE TABLE com_monster_im (
monim_id INTEGER NOT NULL,
com_monster CHAR(1000),
PRIMARY KEY(monim_id));
FDQuery コンポーネントは、次のクエリで構成されます。
SELECT monim_id, com_monster
FROM com_monster_im
WHERE monim_id = :paramMonimId
永続フィールドなどは使用しません。