![]() |
Sidebar |
Firebird upgrade 2.1 to 2.5(その2)
執筆:2011/03/07
編集:2011/03/07 Firebird2.5へアップグレード(その2) どうやら、metadataというものが、2.5からutf8で保存されるようになったようだ。 データ部分は、デフォルトのデータベースの文字セットと同じになっている気がする。 Firebird2.5から データベース NONE だとアップグレード時にgbakがリストアで失敗するので データベース に文字コードを指定して構造を先に作成したあと、 TIBDatabaseを2つ用意して Tableループでテーブルのコピーをさくっとして正常動作しました。 (手順としては、データフィールド以外は無視+NULLも) テーブルのリストは、IBDatabase1.GetTableNames(Tables, False);で取得できます if (current_field.FieldKind <> fkData) or (current_field.IsNull) then Continue; // コピー destTable.FieldByName(current_field.FieldName).AsVariant := current_field.AsVariant; Shift_JISから、UTF8へ保存する場合は、破損する場合があるので注意しよう。 将来性を考えて、 専用変換ソフトを作って、ワンプッシュで新しいデータベースにコピーできるようにしました。 (TableとGENをコピー) ここは、素直に、データベースとアプリケーションとも同じ文字コードで接続したいと思います。 Todo: データ移行ソフトのコピー後の全データ照合。 » 続きを読む |
![]() |
Sidebar |