2

別の古いデータベースから新しいデータベース (Firebird 2.5 の IBExpert で作成) にデータを移行する必要があります。FIBPlus コンポーネントを使用しています。これで、古い varchar と blob テキストが異なる文字セットと照合 (ほとんどが WIN1252) にあることがわかりました。

DBImport (データを取得するデータベース) には次のプロパティがあります。

  pFIBDBBase.DBName := path_to_the_database_file;
  pFIBDBBase.ConnectParams.UserName := 'SYSDBA';
  pFIBDBBase.ConnectParams.Password := 'masterkey';
  pFIBDBBase.ConnectParams.CharSet := 'NONE';
  pFIBDBBase.SQLDialect := 3;

DBNew (新しいデータベース) には次のプロパティがあります。

  pFIBDBSecond.ConnectParams.UserName := 'SYSDBA';
  pFIBDBSecond.ConnectParams.Password := 'masterkey';
  pFIBDBSecond.ConnectParams.CharSet := 'UTF8';
  pFIBDBSecond.SQLDialect := 3;

ここでTOndrej が提供する SQL を使用してフィールド定義を取得します

新しいデータベースでは、同じフィールドが UTF8 になりました。

私の質問は、FieldByName ('etc').AsString を使用して古いデータベースから読み取り、ParamByName ('etc').AsString を使用して新しいデータベースを埋める場合、文字列とテキスト blob データが 100% であることです。同じ (DBImport フィールドの文字セットに関係なく)?

4

1 に答える 1