[Delphi:91155] ファイルベースDBからRDBMS に移行したい。

436 views
Skip to first unread message

大須賀

unread,
Mar 8, 2009, 6:57:03 AM3/8/09
to Del...@ml.users.gr.jp
大須賀です。
現在 PC9台でLANをファイル共有で組んでいます。
DBはファイルベース の BORLAND dBASEです。
PCは Xp Pro。 D7 Pro で PRG作成しています。
BDE TTable から BDE TQueruy、BDE TUpdateSQL に現在書き換え中です。
今後PC台数が増える為 RDBMSに移行したいです。
RDBMSの選択にあたりご意見をお聞かせ下さい。
(1)RDBMSは未経験、知識は少ないです。
(2)BDEに慣れている為 可能ならばBDEを使用したいです。
よろしくお願いします。

大須賀明美
osuk...@uv.tnc.ne.jp

中村拓男

unread,
Mar 13, 2009, 12:00:16 AM3/13/09
to Del...@ml.users.gr.jp
中村@ブレーンです。

個人的には、とっても無難なせんですが MS SQL + ADO(dbGO)

です。

理由:
■BDE は未来はなさそう。
■ADO(dbGo)はドライバが RDBMSメーカ純正になるので安心感がある。
たいていのRDBMSに費用をかけずに接続できるし使い方も簡単。
#RDMSサーバ/クライアントの購入費用は別途必要。
■MSSQL は、小規模システム用の費用が比較的安い
サーバライセンス(5CAL) 9万、追加CAL 3万

ご参考まで。

大須賀 さんは書きました:

----------
東京都 日野市 中村拓男

大須賀

unread,
Mar 13, 2009, 7:43:57 AM3/13/09
to Del...@ml.users.gr.jp
中村@ブレーンさま ご意見有りがたく承りました。

そうですか。BDEには未来はないのですか。
長くBDEに御世話になり慣れ親しんでいたので
BDEと討ち死にしてもいいともおもっていました。
しかし組織の為にはそうもいきません。
(1)できればオープンソースDBで移行を試みたいです。
   10数台のPCを使用したいです。
(2)多くの Borland dBase DBファイル があります。
   なんとか 徐々に import しながら RDBMSに移行したいです。
RDBMS選択になにかヒントをいただければ有りがたく存じます。

大須賀明美
osuk...@uv.tnc.ne.jp

Kunikazu Okada

unread,
Mar 13, 2009, 9:31:14 AM3/13/09
to Del...@ml.users.gr.jp
大須賀さん

岡田国一と申します

> (1)できればオープンソースDBで移行を試みたいです。
>    10数台のPCを使用したいです。

★Firebird は悪くない。と思います。

弊社では Direct Oracle Access (DOA) と、DBISAM と
二つの製品の輸入販売を8年ぐらい前からやっています。

DOAはOracleユーザ向けで、Oracleを使う現場にはOracleを使う理由があるでしょう。
DBISAMはMS Accessクラスの簡易DBMSで、アプリケーションに静的リンクできてしまうのが売りです。

大須賀さんの場合、10数台で使うということですから、まともなC/S接続のRDBMSということで、
MS-SQL Server / Oracle / DB2 とか、
オープンソースだと Firebird / MySQL / PostgreSQL などになりますが、

別件でMySQLやpostgreSQLの利用実績があれば別ですが
もともとFirebirdはボーランド製品由来ですから、
オープンソースでDelphiとの相性・実績が一番なのはFirebirdです。

弊社ではFirebird+IBObjectで作った社内システムを運用していますが、
5年かけてDBサイズが4GBを越えて育って、なおノートラブルです。
最新事情には疎いですがFirebird+FIBPlusが評判良いみたいです。

★オープンソース製品は利用者が少なく、ノウハウを集めるのが困難なので
MS-SQL Server+ADOなど、枯れた組み合わせを選んだ方がリスクがありません。
中村さんの言うとおり。無難です。BDE に未来なし、も真です。

原因不明のトラブルに英語コンテンツを参照して対処しなきゃならない場面もあるが、
そこを一度乗り越えて飼い慣らすと、他にお金出すのがばかばかしくなるのが
オープンソースの醍醐味であることは、私もよーくわかっています:)

コンポーネントもRDBMSも、無償利用期間が必ずあるので、
期間を決めて、プロトタイピングしてみることをオススメします。
FireBirdとFIBPlusをすぐにダウンロードしてプロトタイプアプリを作り、うまく動いたら採用。
こんな面倒な評価作業やってられないと感じたら、素直に商用製品を使いましょう。

期間中におかしなことが発生し、ちょっと調べて答えが見つからないようなときも、
その技術の組合わせの採用は、見送らねばなりません。

人員が余っていてスケジュールに余裕があり、予算が少なくても将来展開が期待できるなら、オープンソース。
人員・スケジュールがタイトで、予算がとれたら、実績ある商用製品が無難でしょう。

上記のいずれでも無い場合は?たぶん逃げるが勝ちです。

> (2)多くの Borland dBase DBファイル があります。
>    なんとか 徐々に import しながら RDBMSに移行したいです。

移行は必要ですし、移行プログラムを作るとなれば、相手のDBMSがどれでも
手間はほとんど変わらないでしょう。

/// 岡田 国一(Kunikazu Okada) ~~~~~~~~~~~~~~~~~~~~~~~~~~~
株式会社 鉄飛テクノロジー ( http://www.teppi.com ),
目黒区下目黒1-4-6ロイヤル目黒101 03-3491-1812
Tokyo, Japan ___________________________________________///

Fumio Kawamata

unread,
Mar 13, 2009, 10:20:18 AM3/13/09
to Del...@ml.users.gr.jp
川又です。こんばんは。

On Fri, 13 Mar 2009 20:43:57 +0900
大須賀 <osuk...@uv.tnc.ne.jp> wrote:

> (1)できればオープンソースDBで移行を試みたいです。
>    10数台のPCを使用したいです。
> (2)多くの Borland dBase DBファイル があります。
>    なんとか 徐々に import しながら RDBMSに移行したいです。
> RDBMS選択になにかヒントをいただければ有りがたく存じます。

MySQLは中村さんがお書きになってますし、ネットでもいろいろ目に
されていると思うので、私はFirebirdユーザ(若干過去形)の立場から...。

Firebird(とInterbase)の他に管理経験があるのは、MS SQL Serverだけ
なので、比較対象が少ないのですが、SQL Serverに比べると、管理は
楽でした。(Interbaseは、「管理者いらず」と宣伝されてましたね。)

Firebirdは自宅(趣味)で使っていて、Paradox形式ファイルで
作っていたデータベースを、Firebird RDBMSに変換しました。
(移行したのは、Paradox形式ファイルでは、2GB以上のファイルを
サポートしてなかったから。)

ちょっと残念なのは、参考書の類が少ないことですが、いざとなれば、
コミュニティがありますので、助けが得られる可能性があります。

http://groups.yahoo.co.jp/group/Firebird-jp-general/

完全に主観的ですが、Firebirdのメーリングリストは、ここ、Delphi-MLに似た印象
を受けております。

4年以上前に、自分がポストした記事を見たら、当時は、OracleのREDOログに
相当する機能は無かったし、当時はその搭載予定も無かったようです。最新の
情報は不案内です。(REDOログについて質問したとき、Firebirdには
シャドウイングという機能があることを教えていただきました。)

MySQL、PostgreSQL、Firebirdの比較は、ちょっと古いですが、
以下のページが参考になるのではないでしょうか。
http://itpro.nikkeibp.co.jp/article/NEWS/20070624/275673/

移行、うまくいくと良いですね。

--
Fumio Kawamata <fu...@my.email.ne.jp>


Fumio Kawamata

unread,
Mar 13, 2009, 10:51:48 AM3/13/09
to Del...@ml.users.gr.jp
川又です。

On Fri, 13 Mar 2009 23:20:18 +0900
Fumio Kawamata <fu...@my.email.ne.jp> wrote:

> > (1)できればオープンソースDBで移行を試みたいです。
> >    10数台のPCを使用したいです。

> Firebirdは自宅(趣味)で使っていて、Paradox形式ファイルで
> 作っていたデータベースを、Firebird RDBMSに変換しました。
> (移行したのは、Paradox形式ファイルでは、2GB以上のファイルを
> サポートしてなかったから。)

岡田さんの書き込みを読んで、自分の書き込みを改めて読んだのですが、
業務で使うのと、趣味で使うのでは、状況が違い過ぎますね。
大須賀さんの(1)の状況を理解せずに書いてしまいました。
大変申し訳ありませんでした。

# 1箇所でも参考になるところがあれば、せめてもの幸いです...。

--
Fumio Kawamata <fu...@my.email.ne.jp>


太田 寛

unread,
Mar 13, 2009, 5:18:39 PM3/13/09
to Del...@ml.users.gr.jp
大須賀 さん

太田と申します。
横からですが、FireBirdでしたら、Interbaseの古い取説が役に立ちます。
今まで、OracleやMS-SQLServerなどを使いましたが、管理はInterBaseが一番楽
でした。高度な管理機能があっても、使わないものが多いのですが、InterBase
は割とツボを押さえてあり、良い具合でした。これはそのままFireBirdに伝わっ
ています。
商用RDBMSはメンテナンス契約等のランニングコストがバカになりません。
私はFireBirdを押します。

> (1)できればオープンソースDBで移行を試みたいです。
>    10数台のPCを使用したいです。

--
〒760-0080 香川県高松市木太町1730-17
瀬戸電測有限会社
太田寛


大須賀

unread,
Mar 13, 2009, 7:08:06 PM3/13/09
to Del...@ml.users.gr.jp
大須賀明美です。
皆様のご意見有りがたく拝聴しました。
FireBirdーDelphi が良さそうとはおもっていましたが
店頭で販売されているFireBirdに関する書籍がなかったため
今まで選択は躊躇していました。
ご意見おかげで本日よりFireBirdに取り組む事に決めました。

皆様に重ねて御礼申し上げます。


大須賀明美
osuk...@uv.tnc.ne.jp

takashi

unread,
Mar 13, 2009, 8:39:13 PM3/13/09
to Del...@ml.users.gr.jp
私のところでは今回 Delphi6 + PostgreSql で開発しました。
ORACLE とほぼ同じ SQL 文が利用できるのがメリットです。
ただし PostgreSql をDelphiから利用する場合は

・ODBC ドライバーを利用する
・BLOB は利用できない

といった制約があります。

> __________ NOD32 3917 (20090307) Information __________
>
> This message was checked by NOD32 antivirus system.
> http://canon-sol.jp/product/nd
>

--
takashi <taka...@csjpn.com>


hiro

unread,
Mar 13, 2009, 10:55:39 PM3/13/09
to Del...@ml.users.gr.jp
hiroです お世話様です

プリンターの用紙を用紙名で決めたいのですが出来るのでしょうか?
たとえば「長形4号」とか?

Carol

unread,
Mar 15, 2009, 1:33:03 AM3/15/09
to Del...@ml.users.gr.jp
Carolです。

Delphi + PostgreSQLなら下記のようなlibpqを直接使用するコンポーネントもあ
ります。
http://www.est.hi-ho.ne.jp/takeshi_kanno/

実際Delphi6で使用して客先納品もしてますが、特に支障なく運用されています。
ただ、ちょっと古いので最新のDBに対応しきっているかは不明ですが。

--
Carol <carol...@nifty.com>


大須賀

unread,
Mar 15, 2009, 10:10:40 AM3/15/09
to Del...@ml.users.gr.jp
大須賀明美です。

皆様有り難うございます。

本日 Firebird 2.1.1 をインストールしました。
サービスでは
 Firebird Guardian 状態 開始 スタートアップ 自動
Firebird Server   状態 開始 スタートアップ 手動
しかし ガーディアンのアイコンがシステム トレーには標示されません。
超初心者向け手引きがあればたすかるのですが
最初からつまずいてしまいました。
本来はFirebird MLに相談すべきですが
もう一度だけここでお教え願います。

osuk...@uv.tnc.ne.jp
大須賀明美


 

Hikaru Fukushi

unread,
Mar 15, 2009, 11:51:17 AM3/15/09
to Del...@ml.users.gr.jp
大須賀さん、こんばんは。福士と申します。

> 本日 Firebird 2.1.1 をインストールしました。
> サービスでは
>  Firebird Guardian 状態 開始 スタートアップ 自動
> Firebird Server   状態 開始 スタートアップ 手動
> しかし ガーディアンのアイコンがシステム トレーには標示されません。

Firebirdの(InterBaseもですが)ガーディアン、サーバとも
単にサービスとして起動し、特にタスクトレイなどに表示される
ことはありませんので、それで大丈夫です。


> 本来はFirebird MLに相談すべきですが
> もう一度だけここでお教え願います。

このスレッドの一連の流れからもわかるように、DelphiにFirebirdの
組み合わせで使っている方も結構多いようなのであまり気にすることも
ないかと思います(Delphiと組み合わせて使うことが前提なら)。

ちなみに個人的にはInterBase Express+InterBaseとdBExpress+
Devart dbExpress Driver+Firebirdの組み合わせですが、InterBase/
Firebirdは気楽に使えるのでお勧めです(上記のどちらの組み合わせも
無料というわけにはいきませんけど)。

# Devartは以前はCore Labでしたが、去年あたりに社名が変わってます。


+=========+=========+=========+=========+=========+=========+=========+
東洋テクニカルシステム株式会社 システム開発部 福士 光
Hikaru Fukushi (Toyo Technical System Inc.)
mailto:fuk...@tts-inc.co.jp
+=========+=========+=========+=========+=========+=========+=========+

Fumio Kawamata

unread,
Mar 15, 2009, 12:00:18 PM3/15/09
to Del...@ml.users.gr.jp
川又です。こんばんは。

On Sun, 15 Mar 2009 23:10:40 +0900
大須賀 <osuk...@uv.tnc.ne.jp> wrote:

> 本日 Firebird 2.1.1 をインストールしました。
> サービスでは
>  Firebird Guardian 状態 開始 スタートアップ 自動
> Firebird Server   状態 開始 スタートアップ 手動
> しかし ガーディアンのアイコンがシステム トレーには標示されません。

Firebird 2.1.1 をインストールしてますが、私の環境でも、通知領域には
アイコンは表示されません。(Windows XP Pro. SP3。Firbird2.1.1はSuperServer)
コントロールパネル→Firebird 2.1 Server Manager をダブルクリック
すると、「Firebirdサービスは起動中です。」と表示されます。
データベースに接続中も、通知領域には、何も表示されてません。
(今まで、気にしてませんでした。)

> 超初心者向け手引きがあればたすかるのですが
> 最初からつまずいてしまいました。
> 本来はFirebird MLに相談すべきですが
> もう一度だけここでお教え願います。

http://firebird.skr.jp/
の、クイックスタート
http://firebird.skr.jp/wiki/%A5%AF%A5%A4%A5%C3%A5%AF%A5%B9%A5%BF%A1%BC%A5%C8
など、どうでしょうか?

Firebirdの管理には、Firebird ISQL Toolが同梱されてますが、私は、IBOConsoleと
いうソフトを利用しています。(IBOConsole は、Googleとかで検索すると、たくさん
紹介ページがヒットします。)

--
Fumio KAWAMATA fu...@my.email.ne.jp


Masaki Umemura

unread,
Mar 15, 2009, 8:22:13 PM3/15/09
to Del...@ml.users.gr.jp
こんにちは。梅村です。

hiro さん:
> プリンターの用紙を用紙名で決めたいのですが出来るのでしょうか?
> たとえば「長形4号」とか?

Delphi7 ですが、下記のような関数を使っています。
どこかで拾ってきた(この ML だったような...)ので、詳しいことは
よく分かりませんです。

function SetPaper(PaperName: String): boolean;
var
DrvName, PrtName, PortName: array[0..512] of char;
h: THandle;
pDevMode: PDEVICEMODE;
PaperCount, i: Integer;
Papers: array[0..255] of array[0..63] of Char;
PaperNo: array[0..255] of Word;
begin
Result := False;

Printer.GetPrinter(DrvName, PrtName, PortName, h);
Printer.SetPrinter(DrvName, PrtName, PortName, 0);
Printer.GetPrinter(DrvName, PrtName, PortName, h);
pDevMode := GlobalLock(h);

try
// 用紙サイズ配列数を取得
PaperCount := DeviceCapabilities(DrvName, PortName, DC_PAPERS,
nil, pDevMode);
// 用紙サイズ番号をPaperNoに保存
DeviceCapabilities(DrvName, PortName, DC_PAPERS, @PaperNo, nil);
// 用紙サイズ名ををPapersに格納
DeviceCapabilities(DrvName, PortName, DC_PAPERNAMES, @Papers, nil);

// 指定した用紙名で用紙サイズ番号を検索
for i := 0 to PaperCount -1 do
begin
if PaperName=Papers[i] then
begin
// 検索された用紙サイズのdmPaperSizeを設定
pDevMode^.dmPaperSize := PaperNo[i];
Result := True;
Break;
end;
end;
finally
GlobalUnlock(h);
end;
end;
___________________________________________________
梅村 正喜

takashi

unread,
Mar 16, 2009, 2:41:40 AM3/16/09
to Del...@ml.users.gr.jp
> Delphi + PostgreSQLなら下記のようなlibpqを直接使用するコンポーネントもあ
> ります。

ありがとうございます。
一度試してみます。


--
takashi <taka...@csjpn.com>


hiro

unread,
Mar 16, 2009, 5:25:39 AM3/16/09
to Del...@ml.users.gr.jp
梅村さん こんにちは hiroです 。
早速ありがとうございました
function SetPaper(PaperName: String): boolean; を使わせていただいたのですが
DeviceCapabilitiesでエラーが出てしまい使えませんでした
何か宣言が足りないのでしょうか?
私にはDEVMODE構造体は複雑で難しいです^_^;

// 用紙サイズ配列数を取得
PaperCount := DeviceCapabilities(DrvName, PortName, DC_PAPERS,

nil, pDevMode);//互換性無しのエラー


// 用紙サイズ番号をPaperNoに保存
DeviceCapabilities(DrvName, PortName, DC_PAPERS, @PaperNo, nil);
// 用紙サイズ名ををPapersに格納
DeviceCapabilities(DrvName, PortName, DC_PAPERNAMES, @Papers, nil);

Masaki Umemura

unread,
Mar 16, 2009, 6:14:25 AM3/16/09
to Del...@ml.users.gr.jp
梅村です。

hiro さん:


> function SetPaper(PaperName: String): boolean; を使わせていただいたのですが
> DeviceCapabilitiesでエラーが出てしまい使えませんでした

すみません情報不足でした。
コンパイルエラーですか?
それなら WinSpool を uses に加えてみてください。

# 私はこういうとき Delphi の Source フォルダを grep します。
___________________________________________________
梅村 正喜

大須賀

unread,
Mar 16, 2009, 9:16:48 AM3/16/09
to Del...@ml.users.gr.jp
大須賀明美です。

福士さん、川又さん
早速のお教え有りがとうございました。
create database; 成功しました。
お騒がせしました。
これで Firebird の勉強が 開始できます。有りがとうございます。

大須賀明美
osuk...@uv.tnc.ne.jp


hiro

unread,
Mar 17, 2009, 5:11:51 AM3/17/09
to Del...@ml.users.gr.jp
梅村さん こんばんはhiroです
WinSpool を uses に加えてコンパイルできました
結果も順調です
有難う御座いましたm(__)m


----- Original Message -----
From: "Masaki Umemura" <masaki_...@imao.jp>
To: <Del...@ml.users.gr.jp>

Reply all
Reply to author
Forward
0 new messages