delphi / c++builder 業務アプリケーション 刷新実践法:...
TRANSCRIPT
© 2017 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential.
BDE を使った業務アプリを
移行ツールで最新化
Delphi / C++Builder 業務アプリケーション 刷新実践法
2017 年 2 月 3 日(金) 14:00 ~ 17:00
© 2017 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential.
BDE を使った業務アプリを
移行ツールで最新化
3© 2017 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. #embtwebi_jp
「 BDE を使った業務アプリを移行ツールで最新化」アジェンダセミナー対象: BDE を使用中のコード資産をお持ちの方時間: 約 50 分
• BDE と取り巻く環境• 既存のコードは財産• 移行する上でのポイント• 移行ツールと移行手順実践• 移行後の広がりと最新化
4© 2017 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. #embtwebi_jp
BDE とは Borland Database Engine
• Delphi 6 以前 にバンドル• 最新バージョン version 5.2
優れたデータベース・ミドルウエア• dBase や Paradox, Microsoft Access などに特殊ドライバなしでアク
セス• InterBase, SQL Server, Oracle, DB2 などに SQL Link ドライバでアク
セス
データベースにビジュアルコンポーネントでアクセス• TTable, TQuery, TStroedProc, TDataBase, TSession,
TUpdateSQL…
5© 2017 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. #embtwebi_jp
2017 年における BDE の現状 Borland Database Engine
• Delphi6 以前 (2001 年 ) に付属 : Windows XP 発表年• 最終バージョン version 5.2 : 2002 年以降アップデートなし• 製品のライフサイクル :サポート終了
• Desktop DB のための dBASE, Paradox が主たるターゲット• 対応データベースが最新ではない• マルチデバイス・クロスプラットフォーム開発非対応• Unicode に対応していない• 16bit / 32bit の開発まで
Windows XP までサポート対象 OS• ユーザーアカウントコントロールの考慮をしていなお• Windows XP 自体のサポート終了
6© 2017 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. #embtwebi_jp
BDE サポート範囲のままではマイナスの資産? Windows XP のまま運用
• セキュリティリスク
デスクトップ DB で運用• マルチデバイス運用に対し接続の壁
新データベース接続の壁• 古いクライアントドライバのみ• Unicode データベース採用時の壁
サーバー、ハードウエアの老朽化• 古い Server OS 、相対的なパフォーマンスの低下
開発した資産が重荷へ…• 多数の C/S プロジェクト、 FA アプリケーション
7© 2017 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. #embtwebi_jp
移行で古いプロジェクトをプラスの資産に
データベースミドルエアの更新• 少ない労力で旧 BDE から最新 FireDAC へ更新可能
• 既存のコード資産を生かして最新環境へ
移行によってプロジェクトをリフレッシュ• 新データベースへの移行
• 新サーバーへの移行
• 新 OS の適用
8© 2017 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. #embtwebi_jp
移行においてのポイントとなる点 OS の更新、 64bit 化
• 32bit → 64bit 、 UAC の考慮
データベース、サーバーの移行• デスクトップ DB: Paradox → InterBase, Oracle 8 → Oracle11g…
データベース接続ミドルウェアの更新 • BDE → FireDAC 、コンポーネントの書換え
サードパーティ ライブラリ、コンポーネント• FastReport, etc
Unicode 化• Ansi → Unicode : Char のサイズ、 PChar のでの取り扱い、 File I/O
9© 2017 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. #embtwebi_jp
BDE の移行先としての:「 FireDAC 」 最新データベースミドルウエア・アクセスコンポーネント
• BDE のコンポーネントに対応するコンポーネントを実装
• Delphi / C++Builder 10.1 Berlin で利用可※
• 多数かつ最新のデータベース対応
• VCL のまま使える
• 移行ツールあり
• マルチデバイス対応 ( FireMonkey 利用時)
※ ローカルデータベースアクセスは Pro 版以上、リモートデータベースアクセスは Pro 版 + FireDAC Add-on Pack 以上
10© 2017 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. #embtwebi_jp
BDE と FireDAC の親和性 親和性の高い対応コンポーネント
BDETDataBase
TSession
TTable
TQuery
TStoredProc
TUpdateSQL
TBatchMove
TDatabase
TQuery TTable
TDataSource
TFDConnection
TFDQuery TFTable
TFDConnection
TFDManager
TFDTable
TFDQuery
TFDStoredProc
TFDUpdateSQL
TFDDataMove
TFDPhysXXXXDriveLink
TFDGUIxWaitCursor
TDBGrid
11© 2017 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. #embtwebi_jp
DBMS
FireDAC
Delphi/C++Builder
FireDAC の構成
FireMonkey および VCL
非ビジュアルコンポーネント [Comp] ビジュアルコンポーネント / フォーム [GUIx]ローカルストレージ [DatS]
データアダプタ [DApt]デバッグ / パフォーマンスモニタ
[Moni]
ネイティブドライバ [Phys] ブリッジドライバ [Phys]Oracl
e DB2 MS SQL
InterBase
FirebirdPG SQL
MySQL
Sybase ASA
SQLite
MS Acces
sODBC dbEx
p
DBMS クライアントソフトウエア
Oracle DB2 MS
SQLInterBas
eFirebird
PG SQL
MySQL
Sybase ASA
SQLite
MS Acces
sSybase ASE
Informix …
ODBCODBCdbExpress
ドライバ
ODBCODBCODBCドライバ
FireDAC が DB へのアクセスをコンポーネントとして提供
12© 2017 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. #embtwebi_jp
reFind• 無料• コマンドラインツール
Delphi Parser• GUI 付• 有料 • 変更ルールをカスタマイズ
BDE to FireDAC 移行ツール
© 2016 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. 13
ReFind: BDE コンポーネントを FireDAC コンポーネントに 移行する実践
14© 2017 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. #embtwebi_jp
BDE の移行に必要となる主な手順
デモのポイントツールで一括変換
BDE プロジェクト→ FireDAC で動
作
FireDAC のログツール
BDE to FireDAC : コンポーネント変換
データベースマッピングの調整
接続設定プロパティの更新
非使用コンポーネントコードの削除・変更
新規コンポーネントの追加 (ドライバ、 Wait )
互換性のないプロパティの調整
API ・クエリの更新
https://community.embarcadero.com/blogs/entry/delphi-c-builder-bde-japan
15© 2017 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. #embtwebi_jp
デモ 参考: Delphi 6 での BDE 使用画面
参考となる資料: DockWiki 「 FireDAC_ への _BDE_ アプリケーションの移行」http://docwiki.embarcadero.com/RADStudio/Berlin/ja/FireDAC_への_BDE_アプリケーションの移行
16© 2017 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. #embtwebi_jp
FireDAC データマッピング
参考 Dockwiki - データ型マッピング :http://docwiki.embarcadero.com/RADStudio/Berlin/ja/データ型マッピング(FireDAC)
プロパティ 説明
PrecMin/PrecMax ソース データ型の数値精度の範囲を定義します。
ScaleMin/ScaleMax ソース データ型の数値スケールの範囲を定義します。
SizeMin/SizeMax ソース データ型の文字列長の範囲を定義します。
SourceDataType ソース(変換元)データ型
TargetDataType ターゲット(変換先)データ型
NameMask 列名マスク
TypeMask 列のデータ型マスク
17© 2017 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. #embtwebi_jp
FireDAC 移行後は FireDAC の機能を生かそう
• DML 配列機能• マクロ…
三層への対応• リモートデータベース化• 中間サーバーの構築
マルチデバイス開発と対応• 中間サーバーへのモバイルデバイス接続• クロスプラットフォーム開発
18© 2017 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. #embtwebi_jp
移行後に検討可能なアプリケーション形態
RDBMS
Windowsクライアント
典型的なC/Sシステム
レガシーシステム
独自のプロトコルで接続
EMSDataSnap
中間サーバー
IoT デバイス
モバイルクライアント
ビッグデータ
デスクトップクライアント
HTTP(S)
RESTJSON
HTTP(S)
RESTJSON
HTTP(S)
RESTJSON
クラウドサービス
RAD Server
IntraWebVCL for Web
ウェブ
ER Studio
19© 2017 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. #embtwebi_jp
「 BDE を使った業務アプリを移行ツールで最新化」まとめセミナー対象: BDE を使用中のコード資産をお持ちの方時間: 約 50 分
• BDE と取り巻く環境• 既存のコードは財産• 移行する上でのポイント• 移行ツールと移行手順実践• 移行後の広がりと最新化
20© 2017 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. #embtwebi_jp
FireDAC : 参考となる資料 Embarcadero DockWiki
• FireDAChttp://docwiki.embarcadero.com/RADStudio/Berlin/ja/FireDAC
• FireDAC への BDE アプリケーションの移行http://docwiki.embarcadero.com/RADStudio/Berlin/ja/FireDAC_への_BDE_アプリケーションの移行
• データ型マッピング( FireDAC )http://docwiki.embarcadero.com/RADStudio/Berlin/ja/データ型マッピング(FireDAC)
28th デベロッパーキャンプにおける FireDAC の紹介• はじめての FireDAC : PDF
http://edn.embarcadero.com/article/images/43368/a2.pdf• YouTube
https://www.youtube.com/watch?v=lDD6z4NuGEohttps://www.youtube.com/watch?v=ZcLu6yq3wHE
21© 2017 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. #embtwebi_jp
移行 : 参考となる資料 エンバカデロ Web サイト
• RAD Studio マイグレーションセンター http://www.embarcadero.com/jp/rad-in-action/migration-upgrade-center
エンバカデロ ホワイトペーパーダウンロード• RAD Studio / Delphi / C++Builder 旧バージョンからの移行http://forms.embarcadero.com/rad-migration-papers
エンバカデロ デベロッパーズ ネットワーク• BDE から FireDAC への移⾏ - Paradox から InterBase の場合
http://edn.embarcadero.com/jp/article/42974
エンバカデロ 日本人ブログ • BDE を使った業務アプリを移行ツールで最新化
https://community.embarcadero.com/blogs/entry/delphi-c-builder-bde-japan
22© 2017 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. #embtwebi_jp
移行ツール: 参考となる資料 reFind
• http://docwiki.embarcadero.com/RADStudio/Berlin/ja/Perl_RegEx_式を使用する検索および置換ユーティリティ:_reFind.exe
Delphi Parser• https://delphiparser.com/
先日のセミナー内容を弊社ブログに掲載
© 2016 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. 23
THANKS!www.embarcadero.com/jp