18
1 本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。 BDEオルタナティブ既存のアプリの乗り換え先大全 キムラデービー(http://kimuradb.com) 代表 木村明治(KIMURA, Meiji) E-mail: [email protected] A3Delphiテクニカルセッション 2 本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。 アジェンダ はじめに BDEオルタナティブ シナリオ BDE + Paradox BDE + InterBase BDE + Oracle デモ&メモ BDEアプリが今後直面する問題

5th CodeGear Developer Camp [A3] - edn.embarcadero.comedn.embarcadero.com/print/images/36653/a3.pdf · • ... BDE+Paradox→BDE互換+InterBase/Firebird • ParadoxからInterBase/Firebird

Embed Size (px)

Citation preview

Page 1: 5th CodeGear Developer Camp [A3] - edn.embarcadero.comedn.embarcadero.com/print/images/36653/a3.pdf · • ... BDE+Paradox→BDE互換+InterBase/Firebird • ParadoxからInterBase/Firebird

1

1本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

「BDEオルタナティブ」

既存のアプリの乗り換え先大全

キムラデービー(http://kimuradb.com)代表

木村明治(KIMURA, Meiji)E-mail: [email protected]

【A3】Delphiテクニカルセッション

2本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

アジェンダ

• はじめに

• BDEオルタナティブ

• シナリオ

• BDE + Paradox• BDE + InterBase• BDE + Oracle

• デモ&メモ

• BDEアプリが今後直面する問題

Page 2: 5th CodeGear Developer Camp [A3] - edn.embarcadero.comedn.embarcadero.com/print/images/36653/a3.pdf · • ... BDE+Paradox→BDE互換+InterBase/Firebird • ParadoxからInterBase/Firebird

2

3本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

はじめに

4本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

MySQL

データベースアクセス概略

• Borlandのデータベースアクセス

• BDE• IBX• dbExpress• BDP

Kylix

DelphiC++Builder

BDE

BDP

dbExpress

IBX

ParadoxdBase

RDBMS(旧)

各種RDBMS

InterBase

Pro

Ent

Page 3: 5th CodeGear Developer Camp [A3] - edn.embarcadero.comedn.embarcadero.com/print/images/36653/a3.pdf · • ... BDE+Paradox→BDE互換+InterBase/Firebird • ParadoxからInterBase/Firebird

3

5本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

MySQL

BDEに注目すると….• Borlandのデータベースアクセス

• BDE

DelphiC++Builder

BDE

ParadoxdBase

RDBMS(旧)

各種RDBMS

InterBase

6本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

BDE

• カスタムのSQL linkドライバーが必要

• データベースへのアクセスと更新を統合

• 個々のDBのSQL拡張は未サポート

• SQL linkドライバーのサポートは終了。

• The Future of the Borland Database Engine (BDE) and SQL Links

• http://dn.codegear.com/article/28688

• 今後はADO, dbExpressを推奨。

Page 4: 5th CodeGear Developer Camp [A3] - edn.embarcadero.comedn.embarcadero.com/print/images/36653/a3.pdf · • ... BDE+Paradox→BDE互換+InterBase/Firebird • ParadoxからInterBase/Firebird

4

7本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

既存のBDEアプリケーションといえば….• Borlandのデータベースアクセス

• BDE

Delphi 5~7C++Builder5,6

BDE 5.2

ParadoxdBase

RDBMS(旧) http://202.33.253.145/bde/support.html#bde_new

ローカルアクセス

リモートアクセス

8本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

InterBase5.x

InterBase6.0

InterBase6.0OpenSource版

Firebird1.0

InterBase6.5

Firebird1.5

InterBase7.x

Firebird/InterBaseとOracle/SQL Server【無償】

【有償】 【日本未発売】

【機能的にほぼ同一】

Firebird2.0

InterBase2007

【2007/3にリリース】

Oracle8.1.7

Oracle9i R2

Oracle10g

Oracle10g R2

【BDE5.2で対応】

SQL Server6.5

SQL Server7.0

SQL Server2000

SQL Server2005

SQL Server2005 SP2

【2006/11にリリース】

MSDE7.0 MSDE2000 SQL Server 2005 ExpressOracleXE

Page 5: 5th CodeGear Developer Camp [A3] - edn.embarcadero.comedn.embarcadero.com/print/images/36653/a3.pdf · • ... BDE+Paradox→BDE互換+InterBase/Firebird • ParadoxからInterBase/Firebird

5

9本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

BDEオルタナティブ

10本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

BDE乗り換え先の種類

• 独自ストレージ~特定接続先

• 「とにかく格納できればいい」というところから「xxxデータベースに格納する」というところまで。

• 「ローカルユーザー単一接続」から「マルチユーザー」まで。

• 汎用接続先

• 「マルチユーザー」

• 「将来の拡張性」から、「製品横展開」まで。

Page 6: 5th CodeGear Developer Camp [A3] - edn.embarcadero.comedn.embarcadero.com/print/images/36653/a3.pdf · • ... BDE+Paradox→BDE互換+InterBase/Firebird • ParadoxからInterBase/Firebird

6

11本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

BDE乗り換え先の種類

• 独自ストレージ~特定接続先

• DBISAM

• AbsoluteDB

• NexusDB

• InterBase/Firebird

• CodeBase

• xxxDAC

12本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

独自ストレージ~特定接続先:DBISAM• Elevate Software社の製品: 日本では株式会社 鉄飛テクノロジー 殿が扱っている。http://zope.teppi.com/Components/DBISAM

• 特徴

• コンパクトで高速なRDBMSエンジン

• Delphiの TDataSet を継承

• 各種データベース対応コントロール (TDBGridやTDBEditをはじめとする各種製品)利用可。

• BDEに比較して、気軽に使いやすい

• インプロセスでEXEに静的リンクできる。レジストリを使わない。ランタイムライセンスフリー

• ただし、本格的なマルチクライアントには不向き。ストアドプロシージャ、CachedUpdates、TBatchMove は使えません

• BDEとの違い詳細(DBISAM4マニュアルより)• http://www.elevatesoft.com/dbisam4d6_bde_differences.htm

Page 7: 5th CodeGear Developer Camp [A3] - edn.embarcadero.comedn.embarcadero.com/print/images/36653/a3.pdf · • ... BDE+Paradox→BDE互換+InterBase/Firebird • ParadoxからInterBase/Firebird

7

13本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

独自ストレージ~特定接続先:AbsoluteDB• Component Ace社の製品

• http://www.componentace.com/bde_replacement_database_delphi_absolute_database.htm

• Best BDE Replacement With SQL (by Roman Korzh)というBDE代替DB比較記事でベストの評価を受けている。

• http://www.delphi32.com/magazine/articles/20/1/

• 特徴• 静的リンクをしてひとつのEXEにまとめられる。

• データの暗号化あり。BLOBをZlibで圧縮可能。イン・メモリテーブルの機能。

• BatchMove相当機能あり(TABSTableコンポーネントのBatchMove メソッド)

• その他、詳細は以下を参照のこと。http://www.componentace.com/help/absdb_manual/differencesfromthebde.htm

14本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

独自ストレージ~特定接続先:NexusDB• 元々はFlash Filer

• http://sourceforge.net/projects/tpflashfiler/

• 現在はnexus社の製品

• http://www.nexusdb.com/showpage.asp?Id=96

• 特徴

• 高機能、コンパクトで、特に欧州で人気がある。

• Upscene社のGUIツールが対応している。

• BDE互換のTnxSessionクラスを持つ。

• Paradoxからのテーブルの移行

• http://www.nexusdb.com/new/index.php?q=node/224

• ただし作りとしては割と複雑な感じ。

Page 8: 5th CodeGear Developer Camp [A3] - edn.embarcadero.comedn.embarcadero.com/print/images/36653/a3.pdf · • ... BDE+Paradox→BDE互換+InterBase/Firebird • ParadoxからInterBase/Firebird

8

15本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

特定接続先(1): InterBase/Firebird• IBObject:http://www.ibobjects.com/

• 必要なのはgds32.dll(fibclient.dll)のみ。

• BDEからIBOへの変換ガイド(英文)• http://www.ibobjects.com/ibo_help/convertbdetoibo.htm

• FIBPlus: http://www.devrace.com/en/fibplus/• 必要なのはgds32.dll(fibclient.dll)のみ。

• IBOほどはBDEに似ていない。

• Is there a tool that automates BDE to FIBPlus conversion? Are there any best practices to keep in mind?

• http://www.devrace.com/en/fibplus/articles/4196.php

• Unicode完全対応←これ重要(のちほど)

16本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

特定接続先(2) その他のRDBMS• CodeBaseのラッパー

• CB4Table(tiriss)• http://www.tiriss.com/cb4tables/index.html

• CodeBase Componenst IV(Softsand.com)• http://www.softsand.com/CBComps4.htm

• xxxDAC• http://crlab.com/products-vcl.html

• ODAC(Oracle), SDAC(SQL Server), MyDAC(MySQL), IBDAC(InterBase)

• DOA(Oracle): http://zope.teppi.com/Components/DOA

Page 9: 5th CodeGear Developer Camp [A3] - edn.embarcadero.comedn.embarcadero.com/print/images/36653/a3.pdf · • ... BDE+Paradox→BDE互換+InterBase/Firebird • ParadoxからInterBase/Firebird

9

17本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

BDE乗り換え先の種類

• 汎用接続先

• AnyDAC

• InstantBDExpress

• dbExpress

18本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

汎用接続先(1)• AnyDAC

• http://www.da-soft.com/content/view/45/145/

• 各DBのネイティブドライバ、dbExpress対応

• InstantBDExpress• http://www.ethea.it/eng_instantbdexpress.asp

• dbExpress対応

Page 10: 5th CodeGear Developer Camp [A3] - edn.embarcadero.comedn.embarcadero.com/print/images/36653/a3.pdf · • ... BDE+Paradox→BDE互換+InterBase/Firebird • ParadoxからInterBase/Firebird

10

19本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

汎用接続先(2): dbExpressに乗り換え!

• BDEアプリケーションのdbExpressへの移行

• http://dn.codegear.com/jp/article/33547

• SQL linkからdbExpressへのDB2を使った移行(英文)

• http://www-128.ibm.com/developerworks/db2/library/techarticle/dm-0312swart/

20本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

dbExpress• Delphi Enterprise版

• 各種dbExpressドライバーが付属

• Delphi Professional版• InterBaseとMySQL版のみ。

• サードパーティdbExpressドライバーと組み合わせる。

• DBX4• Delphi 2007 for Win32• Unicode対応←ここ重要(後で)

Page 11: 5th CodeGear Developer Camp [A3] - edn.embarcadero.comedn.embarcadero.com/print/images/36653/a3.pdf · • ... BDE+Paradox→BDE互換+InterBase/Firebird • ParadoxからInterBase/Firebird

11

21本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

シナリオ

22本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

BDE + Paradox• BDE + Paradoxの短所: サーバー製品に比べて

• トランザクションや排他処理が貧弱。

• データが壊れやすい。

• データ量が増えるにつれ、パフォーマンスダウンやエラーが発生しやすくなる

• 移行先: 2つの選択肢

• データ量増大による問題→BDE互換独自ストレージ

• マルチクライアント→BDE互換の特定or汎用RDBMS

Page 12: 5th CodeGear Developer Camp [A3] - edn.embarcadero.comedn.embarcadero.com/print/images/36653/a3.pdf · • ... BDE+Paradox→BDE互換+InterBase/Firebird • ParadoxからInterBase/Firebird

12

23本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

BDE+Paradox→BDE互換ストレージ

• 適切なものはどれか?

24本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

BDE + Paradox→BDE互換+RDBMS• ミドルウエア(BDE)の移行に加えて、データベースの移行も必要。

• 例えば、InterBase(Firebird)に移行するなら、以下のドキュメントが参考になる。

• InterBase Technical InformationParadoxからInterBaseへの移行

• http://dn.codegear.com/jp/article/36548

• Paradoxから各種RDBMSへの移行にはいくつかツールがある。

Page 13: 5th CodeGear Developer Camp [A3] - edn.embarcadero.comedn.embarcadero.com/print/images/36653/a3.pdf · • ... BDE+Paradox→BDE互換+InterBase/Firebird • ParadoxからInterBase/Firebird

13

25本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

BDE+Paradox→BDE互換+InterBase/Firebird• ParadoxからInterBase/Firebirdへの移行については、

IBPhoenix社のサイトに各種資料がある。(英文)

• Migration(移行):• http://www.ibphoenix.com/main.nfs?a=ibphoenix&page=ibp_

document#Mig

• 例えば、次のようなドキュメントがある。

• Upsizing Paradox Databases to InterBaseBy James Arias-La Rheir.

• My Lock File Has Grown Too Large - 30 Days from Paradox to InterBaseBy Skip Rowland, Borland Developers Conference 1999.

26本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

BDE + InterBase• 単純にBDE自体を使わないようにしたい。

• InterBaseの新版(7.x, 2007)やFirebirdに移行したい。

• 選択肢は2つ

• IBObjectに移行

• dbExpress or DBX4に移行

• 「BDEアプリケーションのdbExpressへの移行」参照。

• 間にInstantBDExpressを入れる、という手もある。

Page 14: 5th CodeGear Developer Camp [A3] - edn.embarcadero.comedn.embarcadero.com/print/images/36653/a3.pdf · • ... BDE+Paradox→BDE互換+InterBase/Firebird • ParadoxからInterBase/Firebird

14

27本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

BDE + Oracle• Oracleのバージョンを上げたい

• 実際は、Oracleのバージョンアップのほうが大変かも。

• 既存のものに適用できるパッチをあて、十分な準備が必要。

• 選択肢は二つ

• Oracleに特化: Oracle専用のアクセスコンポーネントを使う。

• Oracle以外も可能性あり: 汎用のアクセスコンポーネントを使う。

28本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

デモ&メモ

Page 15: 5th CodeGear Developer Camp [A3] - edn.embarcadero.comedn.embarcadero.com/print/images/36653/a3.pdf · • ... BDE+Paradox→BDE互換+InterBase/Firebird • ParadoxからInterBase/Firebird

15

29本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

デモ&メモ

30本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

BDEアプリが今後直面する問題

Page 16: 5th CodeGear Developer Camp [A3] - edn.embarcadero.comedn.embarcadero.com/print/images/36653/a3.pdf · • ... BDE+Paradox→BDE互換+InterBase/Firebird • ParadoxからInterBase/Firebird

16

31本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

BDEアプリが今後直面する問題

• これまでに直面した問題

• 取り扱いデータの増大

• それによるパフォーマンスダウン

• データ量上限

• 対象データベースのバージョンアップ

• 対象クライアントアプリのバージョンアップ

• 今後直面する問題

• OSのバージョンアップ(Vista, 64-bit化)

• 新しい文字コードへの対応

32本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

今後直面する問題: 新しい文字コード

• BDEのライフタイムにはUnicodeはあまり一般的ではなかった。

• 使われてもUNICODE_FSSレベル

• Windows Vista登場

• JIS2004• 「完全な」UTF8への対応が必要。

• 新しいセキュリティモデル

Page 17: 5th CodeGear Developer Camp [A3] - edn.embarcadero.comedn.embarcadero.com/print/images/36653/a3.pdf · • ... BDE+Paradox→BDE互換+InterBase/Firebird • ParadoxからInterBase/Firebird

17

33本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

データベース

ミドルウエア

クライアント

それぞれのレイヤでUnicode対応が必要

UIコンポーネント

34本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

データベース

ミドルウエア

クライアント

それぞれのレイヤでUnicode対応が必要

UIコンポーネント

TMS Unicode Component Pack

http://www.tmssoftware.com/tmsuni.htm

DBX4(Delphi 2007 for Wind32)または

FIBPlus(http://devrace.com)

UTF-8対応データベース

Page 18: 5th CodeGear Developer Camp [A3] - edn.embarcadero.comedn.embarcadero.com/print/images/36653/a3.pdf · • ... BDE+Paradox→BDE互換+InterBase/Firebird • ParadoxからInterBase/Firebird

18

35本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

補足

36本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

補足