FIREBIRD2.5 移行でエラー FireDAC Select で 例外発生するけんについて相談

144 views
Skip to first unread message

YO

unread,
Jan 13, 2020, 9:27:39 PM1/13/20
to Japan RAD Studio User Group

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データはエラーなく検索表示は可能です。

エラー回避方法についてご指導いただけると助かります。
Reply all
Reply to author
Forward
0 new messages