別の古いデータベースから新しいデータベース (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 フィールドの文字セットに関係なく)?