フォーラム


ゲスト  

ようこそ ゲスト さん。このフォーラムに投稿するには 登録が必要です。

ページ: [1] 2 3
トピック: [Software] Firebird Database Converter
DEKO
管理者
投稿数: 2383
[Software] Firebird Database Converter
on: 2015/10/30 17:30 Fri

[Firebird Database Converter]


https://github.com/tomneko/fbconverter

名前の通り、Firebird のデータベースを別のバージョンの Firebird データベースに変換します。
MIT ライセンスのオープンソースで、Delphi XE4 以降でコンパイルできます。すぐに使えるバイナリも配布されています。

不具合情報、ご意見ご要望などありましたら、github またはこちらにどうぞ。

DEKO
管理者
投稿数: 2383
Firebird Database Converter 1.0.1
on: 2015/10/30 18:10 Fri

[変更点]

  • 引数のない UDF を変換すると引数が増えるバグを修正。
  • 変換元 DB の文字コードがデフォルト ANSI または NONE の場合、UDF の ENTRYPOINT が切り詰められる事がある問題を回避した。

後者は Zeos に関する不具合 (バグとも仕様ともとれますが) です。詳細は以下をご覧ください。

[ZeosDBO で Firebird に接続する]
http://ht-deko.com/delphiforum/?vasthtmlaction=viewtopic&t=1264.0

DEKO
管理者
投稿数: 2383
Firebird Database Converter 1.0.2
on: 2015/11/01 23:11 Sun

[変更点]

  • CONSTRAINT の処理がおかしかったのを修正
DEKO
管理者
投稿数: 2383
Firebird Database Converter 1.0.3
on: 2015/11/07 09:02 Sat

[変更点]

  • GLOBAL TEMPORARY TABLE に対応

Firebird の GLOBAL TEMPORARY TABLE については木村さんのブログを参照の事。

[Firebird 2.1の新機能(2) グローバル一時表 (キムラデービーブログ)]
http://blog.kimuradb.com/?eid=533563

kita--
メンバー
投稿数: 10
Re: [Software] Firebird Database Converter
on: 2015/11/24 11:59 Tue

北畑と申します。
DEKOさんのサイトやら、ibconsole やら、何かとお世話になっています。
fbconverter 1.03 を使ってみました。
非常に有用で便利なツールなのですが、
以下の問題があるように思われます。

変換元のあるレコード(1)のフィールドAに何か値(X)が設定されていて、
次のレコード(2)の同じフィールドAが null だった場合、
変換先のレコード(2) のフィールドAが null にならずに、値(X)が書き込まれている。
例えば、
変換元
fieldA(integer)
rec1 123
rec2 null
rec3 null
rec4 555
rec5 null

変換先
rec1 123
rec2 123 ← null になっていない
rec3 123 ← null になっていない
rec4 555
rec5 555 ← null になっていない

変換前後のデータを ibConsole で並べて見てみると、こうなっているというだけで、
他に条件があるのかもしれません。

変換時の設定
Source DB FB2.1 UNICODE_FSS
Destination DB FB2.1 UTF8

DEKO
管理者
投稿数: 2383
Re: [Software] Firebird Database Converter
on: 2015/11/24 15:27 Tue

北畑さん、フィードバックありがとうございます。
ちょっと時間を見つけて調べてみますね!

DEKO
管理者
投稿数: 2383
Re: [Software] Firebird Database Converter
on: 2015/11/24 18:07 Tue

試してみましたが、特に問題は出ないようです…ハテ?

CREATE TABLE "TBL_TEST" 
(
"ID" INTEGER NOT NULL,
"NAME" CHAR(20),
PRIMARY KEY ("ID")
);

 
使用したデータは NULL が交互に来る以下のようなデータです。

INSERT INTO "TBL_TEST" ("ID", "NAME") VALUES (1, NULL);
INSERT INTO "TBL_TEST" ("ID", "NAME") VALUES (2, 'AAA ');
INSERT INTO "TBL_TEST" ("ID", "NAME") VALUES (3, NULL);
INSERT INTO "TBL_TEST" ("ID", "NAME") VALUES (4, 'BBB ');

 
CHAR でも VARCHAR でも試しましたが問題は出ませんでした。

DEKO
管理者
投稿数: 2383
Re: [Software] Firebird Database Converter
on: 2015/11/24 18:12 Tue

Verbose Mode で変換すると、C:\Users\<アカウント名>\AppData\Roaming\Firebird Converter にメタデータが生成されますが、そちらでも不正なデータになっているのでしょうか?

※ metadata.sql が Insert 文形式のメタデータです。

kita--
メンバー
投稿数: 10
Re: [Software] Firebird Database Converter
on: 2015/11/25 09:41 Wed

Verbose mode on で実行すると、ibConsole で見たデータも、metadata.sql も正しい様です。
(パッと見での判断です。全レコードの確認はしていません)
Verbose mode off だと、最初の報告の様な不正動作になります。

再現するシンプルなデータを作成しました。
http://ht-deko.com/delphiforum/wp-content/uploads/fbConvertNG20151125kitahata.fdb

DEKO
管理者
投稿数: 2383
Re: [Software] Firebird Database Converter
on: 2015/11/25 11:34 Wed

引用 kitahata on 2015/11/25 09:41 Wed
再現するシンプルなデータを作成しました。
http://ht-deko.com/delphiforum/wp-content/uploads/fbConvertNG20151125kitahata.fdb

 
ありがとうございます m(_ _)m
このデータで検証してみますね!!

※ 続きは ↓ の [2] をクリック。

ページ: [1] 2 3

WP Forum Server by ForumPress | LucidCrew
バージョン: 1.7.5 ; ページロード: 0.039 sec.