日記帳
本ページはプロモーションが含まれています
カテゴリー
Links
blog(ブログ)マスター
アンドロイドの巣
ゼロから始めるベランダ菜園
タイトル
2025年2月
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28

Search Results

Firebird upgrade 2.1 to 2.5


執筆:2011/03/02
編集:2011/03/05


【まとめ】
  • SQL-2003対応になった
  • UTF8とShift_JIS間でコンバートが発生すると
    コンバートエラーを起こしやすい( Ⅱ など)
  • Malformed stringと表示され、リストアなどができない
    全角が使えないわけではない。
    コードページの再確認:SJIS,CP943C,UTF8
    Firebird Language Reference Update
      Firebird-2.1-LangRef-Update.pdf
        New character sets
  • CHARACTER SET のチェックが厳しくなった。
    いままで適当なことをしているとgbakなどで返り討ちされる。
    DEFAULT CHARACTER SET NONE;
【考察】
 移行には、ある程度アプリケーションの修正が必要になると思います。
新しい構文を使いたい場合やUTF8アプリケーションの場合は、移行すると便利と思います。
Shift_JISでデータをやりとりしている場合は、移行する必要性が感じられません。手間など不利益のほうが大きいでしょう。
 どうしても移行したく、エラーで変換できない場合は、テーブルをSQLダンプできるツールを使用するか、新規にデータベースを作成して、テーブルをコ ピーするといいだろう。
 構造が複雑な場合以外は問題ないと思いますが、
Firebird Roadmapには、2.5は、当面バグふぃっすに重点をおくと書いてあるので
急ぐ必要がない場合は、ある程度バグができってしまってから2.5に乗り換えた方がいいように思います。

» Firebird upgrade 2.1 to 2.5'">続きを読む

カテゴリー: General
2011.03.07

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: データ移行ソフトのコピー後の全データ照合。

» Firebird upgrade 2.1 to 2.5(その2)'">続きを読む

2011.03.09

PR

[PR]