dbExpress アプリケーションの移行(FireDAC)
DbExpress アプリケーションの FireDAC への移行 への移動
この例では、Delphi デモ アプリケーション(MeetingOrganizer)を FireDAC にどう移行するかを段階的に示しています。
このデモ アプリケーションについては、必要なファイルは、C:\Users\Public\Documents\Embarcadero\Studio\23.0\Samples\Object Pascal\Database\FireDAC\Tool\reFind\DBX2FDMigration\Demo
にあります。}}
- migrate.bat ユーティリティは、ルート フォルダにあります。
- MeetingOrganizer デモ アプリケーションは、
Forms
フォルダにあります。 - MEETINGORGANIZER.GDB は、
Database
フォルダにあります。 - dbExpress 接続ファイル(dbxconnections.ini)は、ルート フォルダにあります。
目次
ステップ 1:Migrate.bat ユーティリティの実行
migrate.bat ユーティリティを実行するには:
C:\Users\Public\Documents\Embarcadero\Studio\23.0\Samples\Object Pascal\Database\FireDAC\Tool\reFind\DBX2FDMigration\Demo
フォルダに移動します。- migration.bat アプリケーションをダブルクリックします。
migrate.bat ユーティリティは、Forms
フォルダ内に新しいフォルダ FireDAC_MeetingOrg
を作成し、dbExpress アプリケーションの移行ファイルを、FireDAC_MeetingOrg
フォルダにコピーします。MeetingOrganizer アプリケーションの元のソース ファイルは、元のフォルダ内に保持されます。
migrate.bat ユーティリティは、RAD Studio ツール reFind を実行して、アプリケーションのdbExpress 用語を対応する FireDAC 用語に置き換えます。
ステップ 2:FireDAC 永続接続定義の設定
元の MO dbExpress 接続は、dbxconnections.ini で定義されています。同じ FireDAC 接続定義を MeetingOrganizer デモのために作成する必要があります。
新しい FireDAC 永続接続定義を作成するには、FireDAC Explorer を使用するか、FDConnectionDefs.ini ファイルを編集します。
- 新しい FireDAC 接続定義を作成します。
- 接続の次のフィールドを設定します。
- Name:
MO
- DriverID:
IB
- Database:
C:\Data\MEETINGORGANIZER.GDB
- User_Name:
sysdba
- Password:
masterkey
- Name:
- この新しい接続定義を保存します。
C:\Users\Public\Documents\Embarcadero\Studio\23.0\Samples\Object Pascal\Database\FireDAC\Tool\reFind\DBX2FDMigration\Demo\Database
フォルダに移動します。- Interbase MEETINGORGANIZER.GDB データベースを、
C:\Data\MEETINGORGANIZER.GDB
へコピーします。
これは、FDConnectionDefs.ini ファイル内の MeetingOrganizer アプリケーションの最も簡単な接続定義です。
[MO]
DriverID=IB
Database=C:\Data\MEETINGORGANIZER.GDB
User_Name=sysdba
Password=masterkey
- メモ: RAD Studio を閉じる必要があります。
ステップ 3:実行時用 FireDAC アプリケーションの準備
アプリケーションに DBMS 固有の FireDAC ドライバやその他の必要なユニット(IFDGUIxWaitCursor インターフェイスおよび IFDPhysDriver インターフェイス用)。
サンプル アプリケーション MeetingOrganizer は、FireMonkey アプリケーション内の InterBase で使用します。
C:\Users\Public\Documents\Embarcadero\Studio\23.0\Samples\Object Pascal\Database\FireDAC\Tool\reFind\DBX2FDMigration\Demo\Forms
フォルダに移動します。- MeetingOrganizer.dproj プロジェクトを開きます。
- IDE では、uMainDM.pas ユニット ファイルを開きます。
- TFDPhysIBDriverLink コンポーネントをプロジェクトにドロップします。
- TFDGUIxWaitCursor コンポーネントをドロップします。
ステップ 4:接続パラメータのセットアップ
uMainDM.pas ファイルで次の変更を行います。
- SQLConnection TFDConnection コンポーネントを選択します。
- [オブジェクト インスペクタ]で、ConnectionDefName の値を MO に変更します。
- テキスト エディタを使って(または Alt+F12 を押す)、.dfm ファイルまたは .fmx ファイルを開きます。
- データ モジュールに TFDConnection コンポーネントをセットアップします(dbExpress 用の既存の
Params.Strings
を編集します)。- 作成した InterBase 接続定義を ConnectionDefName に設定し、ユーザー名とパスワードも正しいものに変更します。
Params.Strings = ( 'ConnectionDef=MO' 'Database=C:\Data\MeetingOrganizer.gdb' 'User_Name=sysdba' 'Password=masterkey')
- コード エディタに移るか、F12 を押します。
- 手続き SQLConnectionBeforeConnect の実装をコメントします。
procedure TMainDM.SQLConnectionBeforeConnect(Sender: TObject); begin // SQLConnection.LoadParamsFromIniFile // (IncludeTrailingPathDelimiter(ExtractFilePath(Application.ExeName)) + // 'dbxconnections.ini'); end;
ステップ 5:データ型マッピングの互換性の設定
InterBase dbExpress ドライバと FireDAC InterBase ドライバはデータ型マッピングが同じです。ただし、次のように、"[VAR]CHAR(N) CHARACTER SET OCTETS" だけはその例外です。
- dbExpress では、それを ftString/ftWideString にマッピングします。
- FireDAC では、それを ftBytes/ftVarBytes にマッピングします。
まだ、他の点でも、マッピングや動作が少し異なる場合があります。それらを統一するには、以下を行います。
- SQLConnection TFDConnection コンポーネントを uMainDM.pas ファイルで選択します。
- [オブジェクト インスペクタ]で以下を設定します。
- FormatOptions.DataSnapCompatibility プロパティを
True
に設定します。 - FormatOptions.StrsTrim プロパティを
False
に設定します(このプロパティのデフォルト値は、dbExpress との互換性はない)。
- FormatOptions.DataSnapCompatibility プロパティを
ステップ 6:MeetingOrganizer 移行デモの実行
MeetingOrganizer アプリケーションにより、アプリケーションの登録ユーザーのためのミーティングを、登録された部屋で行うことができます。MeetingOrganizer アプリケーションを使用すると、ユーザー、カンファレンス ルーム、ミーティング ルームの情報を、登録および変更することができます。
- アプリケーションを実行するには、[実行]または F9 を押します。
- MeetingOrganizer アプリケーションにログオンするには、次の登録テスト ユーザーを使用します。
- ログイン ユーザー:
borland
- パスワード:
borland
- ログイン ユーザー:
- メモ: これは、MEETINGORGANIZER.GDB にアクセスするためのユーザーではなく、MeetingOrganizer アプリケーションの登録済みユーザーです。