Firebird2.5 DB, Delphi XE8, FireDAC で 社内プログラムを作成しています。
新規グループに移行後、初めて投稿相談させていただきます。宜しくお願い致します。
今回 Firebird 1.5(SJIS_0208)から Firebird 2.5 (CP943C)にアップグレードしました。
データ はFBconverterで FB2.5 embedded に convert し convert は成功しました。
しかし FB2.5 アップグレード後 FireDAC プログラム Select で 例外が発生します。
症状
(1)FB1.5(SJIS_0208) → FB2.5(CP943C) にアップデート移行後 Select ができなくなりました。
(2)Primary key Column Varchart(13) で 文字数 11,12,13 データ Select でエラー
(3)CODE Varchar(13) 26 bytes を CODE Varchar(20) 40bytes 「Primary key」 に最大文字長を拡張しても selectエラー
(4) 文字数 12 のデータ を 文字数 10に修正すれば Select できます。
Table構造
CREATE TABLE "SHOMDATA"
(
"CODE" VARCHAR(13) NOT NULL,
"HINNMEI" VARCHAR(36),
省略
PRIMARY KEY ("CODE")
);
Select文
Select * from ShomData where CODE = :CODE
DM.FDShomDataQry.ParamByName('CODE').AsString := '1Z001076-PMP'; // 12桁
エラー発生
CODE 文字長 11桁、12桁、13桁行 の 「Primary key」項目 で実行失敗します。
CODE は 半角英数です。
表示エラーメッセージ
例外クラス EIBNativeException (メッセージ) [FireDAC] [Phys] [FB] DynamicSQL ErrorSQL error code = -303
arithmetioc exception, numeric overflow, or string truncation, string right truncation 検出しました。
現在対策として、下記対応を行いましたが改善いたしませんでした。
同一構造一時テーブル作成し、Primarykey(code)の桁数を20桁に増やし再度もとのテーブルに戻しましたが
検索を行うと同様のエラ-が発生いたします。
ISQL、FLAMEROBINでは、FIREBIRD2.5データはエラーなく検索表示は可能です。
エラー回避方法についてご指導いただけると助かります。