X



Firebird関連スレ3

0156NAME IS NULL
垢版 |
2010/03/03(水) 16:39:37ID:???
>>141
その組込みじゃないならEmbeddedという単語を使ってほしくないよな
0158NAME IS NULL
垢版 |
2010/03/04(木) 12:31:53ID:???
Win2k上のDelphi 6 personalで郵便番号のデータでテストしています。
全国版ですので、総件数12万3千件弱のデータ数となります。
Firebirdのバージョンは、2.1.3のスーパーサーバーです。ローカル接続です。

データベースの接続テストとして、ODBCCall、FBLib, IBObjects, libsql(ODBC) など
試していますが、Select文でのスピードがかなり違います。
IBObjects < ODBCCall = FBLib << ODBC
速い                     遅いという順番で、

         初回     2回目      3回目
IBObjects    2秒    2秒前後     2回目と同程度
ODBCCall   8.3秒    4秒前後     2回目と同程度
FBLib      9.3秒    2秒前後     2回目と同程度
libsql(ODBC)  7.5秒    11秒前後     2回目と同程度

post_tableというテーブルで、ID integer, post_code varchar(7), address varchar(200)
というフィールドを持っており、Select * From post_table;をしています。
IBObjectsについては付属のGridコンポーネントを使用。その他は、Stringgridを使い表示しています。

IBObjects, FBLibはFirebirdに直結していて、ODBCCall, libsqlはODBC経由で接続となります。
IBObjectsが以上に速く感じるのですが、どういった理由で、このスピード差が出てくるのでしょうか?

試しに「なでしこ」もデータベース接続できるので、同じテストをしましたら、
初回4秒、2回目以降も4秒となかなか高速でした。ADOでの接続のようです。

初心者としては、FBlib, ODBCCall, libsqlが覚えることが少なく、使いやすく感じます。
IBObjectsは、コンポーネントが多く何が何の役目をしているのかがわかりにくいです。慣れの問題でしょうか。

IBObjectsの初回の2秒というのは、信じがたいのですが、私の何かの間違いなのでしょうか?
その他の結果の2回目以降は、キャッシュか何かにヒットしていて、それで速いのではないかと思っています。
libsqlについては、2回目以降は初回よりも遅くなります。

IBObjects http://www.ibobjects.com/
ODBCCall http://homepage1.nifty.com/TAK/index.htm
FBLib    http://fblib.altervista.org/
libsql    http://sourceforge.net/projects/libsql/files/ 
       libsqlは、最新版だとインストール出来ないので、0.55を使っています。
0159NAME IS NULL
垢版 |
2010/03/04(木) 12:44:30ID:???
あっ、ここより、プログラム板のDelphiスレに書いた方が良かったでしょうか?
それと
IBObjects <<< ODBCCall = FBLib << libsql(ODBC)に訂正します。
0160NAME IS NULL
垢版 |
2010/03/05(金) 01:54:21ID:???
>>158
IBObjectsもTStringGridに出力した場合、違い出る?

あと、Del6 PersonalはTDbGrid使えるっけ?
使えるのなら、どのような結果になる?

推測だけど、IBObjectsの専用コンポのようなdata-aware-controlは必要なレコードだけ読み込んで表示するため速いんじゃないのかな

0161NAME IS NULL
垢版 |
2010/03/05(金) 04:58:21ID:???
>>160
ご返答ありがとうございます。
その後、追試していたのですが、メモリの使い方がすごく少ないのを確認しました。
タスクマネージャでプロセスを見ていたのですが、IBObjectsは、実行後およそ22MB。
その他は、ほぼ横並びの210MBメモリを使用していました。
不思議なのは、IBObjectsの実行後、Gridの横に表示されているスクロールバーをつかんだまま、
最下行まで行っても、ちゃんと全データ表示されていました。
同じデータを見ているのにおよそ10倍もメモリの使用量が違っていました。
初心者の私には、理解不能です。

ご質問にお答えいたします。
1.IBObjectsの出力を通常のStringGridに表示する方法がわかりませんでした。
  ですので、IBObject付属のGridにてテストとなりました。

2.Delphi6 Personalには、残念ながら、データベース関連のコンポーネントは、付属していません。
 他のコンポーネントもいろいろと試したのですが、VCLDBが必要であったりして使えないものも多く、
 Personalで実行できるものをテストしていました。

3.確かに順次読み込みながら、表示しているのかもしれません。処理の最初と最後にGetTickCountを
 呼び出して時間を算出しているのですが、実は、すぐに処理を返して、裏で動いているのかもしれません。

速さの謎、メモリ使用量の謎などありますが、IBObjectはコンポーネントの数および個々についてる
プロパティーなどが非常に多く、私には持てあましてしまいますので、すでにアンインストールしました。
FBLibが迷いが少なく(選択肢が少なく)データベースの勉強をするには、最適に思います。
(ソースも付いています。)
ODBCCallについては、データソースだけを変更するだけで、データベースを切り替えられるので、
とても便利だと思います。データベースの差異を吸収してくれますね。

実は、もう一つADOでの接続テストもしていました。
ADO 初回12.5秒 2回目5.2秒 3回目2回目と同程度。
参考 http://d.hatena.ne.jp/shosui/20051001
ADO接続は、ちょっとめんどくさかったです。

データベースに接続するだけでも、いろいろと方法あるのと、それぞれの性能の違いがあるものですね。
sqlite3やpostgresqlもODBC接続、libsql、pqcompoでいろいろとテストしていました。
Firebirdは、1ファイルのお手軽さ、Embeddedバージョンなどもあり、データベースの勉強には、
ちょうど良いかなと思っています。

長文失礼しました。
0162NAME IS NULL
垢版 |
2010/03/05(金) 09:38:17ID:???
where句で、文字列の値を指定する場合、
英語の大文字小文字無視する指定はできますか?
0163NAME IS NULL
垢版 |
2010/03/05(金) 12:09:38ID:???
http://www.devart.com/ibdac/
InterBase Data Access Components (IBDAC) is a library of components that provides access to
InterBase, Firebird and Yaffil database servers.

これ使ったことある人居ますか?
使い物になります?
IBXと比べてどうでしょう。
0164NAME IS NULL
垢版 |
2010/03/05(金) 17:47:16ID:???
>>162
UPPER()で大文字化してから比較。

where upper(col) like 'HOGE%'
0166NAME IS NULL
垢版 |
2010/03/11(木) 10:25:04ID:???
FirebirdのJDBC、Jaybirdってopenjdkでも動く?
sunのjdk使えない環境なんで
0167NAME IS NULL
垢版 |
2010/03/21(日) 15:46:57ID:???
Windows + Javaで構築を検討中です。
JDBCを使用する場合に、
文字化け等の問題を懸念してますが、
問題の少ないキャラクタセットは何でしょうか?
0168NAME IS NULL
垢版 |
2010/03/21(日) 15:48:23ID:???
>>164
これじゃインデックスがあたらない...
0169NAME IS NULL
垢版 |
2010/03/22(月) 01:09:06ID:???
>>167
UTF-8でいいんじゃない?
ver2から使えたはず。

ver2以前だと、UNICODE FSSってのになるけど、UTF-8との違いはよく分からん。ごめん。
0171NAME IS NULL
垢版 |
2010/03/26(金) 22:22:37ID:???
>>170
そんなことできるんだ。ずいぶん長い間使ってたけど知らなかった。
0172NAME IS NULL
垢版 |
2010/04/12(月) 08:59:52ID:cvuDvz2m
XP、FB21使ってるんだけど
データベースファイルが36Gぐらいになるとファイルがぶっ壊れて
データベースには接続できるんだけど
テーブルがみれなくなる。これで2回目
やっぱりマルチファイルにしたほうがいいのかな。
これってwindowsのせいかな
0173NAME IS NULL
垢版 |
2010/04/13(火) 09:57:53ID:ZxXFnJ/0
>>172
1.5系ならズバリ36GBがデータベースサイズの上限だけど、2.1系なら違うな。
なんのせいだろ? データベースのODSが古いまま使ってるとか?

そもそもなんでそんなにでかくなるんだろう。
更新の多いデータベースは、たまにバックアップ&リストアは必須だよ。
0174NAME IS NULL
垢版 |
2010/04/13(火) 10:33:13ID:???
DBファイルの作成を1.5系でやると、そーなる、とか?????
だったら1.5系でDBファイル作った自分ガクブル
0175NAME IS NULL
垢版 |
2010/04/13(火) 22:05:17ID:9U6/8pFy
1.5系でつくって、その後2.1にしました。
jpegとかのバイナリーを扱っているので
サイズが大きくなっているみたいです。
0176NAME IS NULL
垢版 |
2010/04/13(火) 22:08:28ID:???
jpegとか直接BLOBに入れるメリットって何?
0177NAME IS NULL
垢版 |
2010/04/16(金) 20:56:40ID:SH82siTM
>>176
むしろ入れないことのメリット何?
0179NAME IS NULL
垢版 |
2010/04/17(土) 07:31:14ID:9H/oucSm
入れて下さい。入れません。
0180NAME IS NULL
垢版 |
2010/04/17(土) 09:31:40ID:???
大昔(IB4くらいの頃)にBLOBは遅いと聞いてからずっと入れない派。
検証はしたことがない。
0181NAME IS NULL
垢版 |
2010/04/17(土) 14:08:09ID:???
勝手に削除されたり関連データと生き別れになったりを防ぐにはBLOBにしてしまったほうがいい。
まぁでも設計次第だよな。どっちかが絶対に正しいなんてことはありえないんだし。
そういやIB/FBではBLOBは自動的にRLEで圧縮されるんだっけ?
0182NAME IS NULL
垢版 |
2010/04/19(月) 08:21:25ID:???
BLOBは圧縮されないはずだったかと
0183NAME IS NULL
垢版 |
2010/04/19(月) 11:03:12ID:???
100メガバイトになるとBLOBのInsertが遅い。
0184NAME IS NULL
垢版 |
2010/04/19(月) 20:53:52ID:xEoelzCI
ISC_STATUS isc_put_segment (ISC_STATUS*, isc_blob_handle*, ushort, char*);

において、バッファーサイズであるところのushort値を「80」とかにしているとInsertが遅いぞ。
せめて1024とか8192にするべきだ。

Firebirdの場合、BLOBデータを少しづつ送り込む、あるいは少しづつ取得することができる。
これはMySQLやsqliteにはない機能だ。
0185NAME IS NULL
垢版 |
2010/04/28(水) 15:57:46ID:6tOhi1/S
>>182
仮に圧縮されたとしても入れるもんがJPEGなら
たいして小さくはならんような気がする。
つーか、ならんかった。
0186NAME IS NULL
垢版 |
2010/05/03(月) 22:18:03ID:???
はじめまして。
初心者に優しいfirebirdの質問は、ここでよいでしょうか?

最近、MSアクセスを無理やり会社から使え!
みたいな感じで押し付けられそうなので、
いっそ、フリーで使えそうなfirebirdを真剣にやろうかと
考えています。

HOW TOみたいなサイトで、
1.5系じゃなく、2.1.3のものは無いでしょうか?
0187NAME IS NULL
垢版 |
2010/05/03(月) 22:21:27ID:???
AccessはAccessで、使いやすいけどな〜
0188NAME IS NULL
垢版 |
2010/05/03(月) 22:35:08ID:???
>>187
そうなんですが、一から勉強するには、
何か損しているような気がしていますので、
アクセスには走りたくないです。
0189NAME IS NULL
垢版 |
2010/05/03(月) 23:17:04ID:???
単に使うだけなら1.5だろうが2.xだろうがあんまり変わらないからな〜。
でなんに使うの?ちなみにMSAccessのようなUIを作ったりする機能はないからね。
0190NAME IS NULL
垢版 |
2010/05/03(月) 23:38:54ID:???
>>189
履歴管理とか、在庫管理でアクセスを使っています。
今あるものは、5年前に作られたものであるので、
今の要求に耐えられるものではないので、改造が必要です。

ほとんど一からスタートなら、作り直したほうがよいと
思ったわけです。やる気もでますし。

よくわかりませんが、UIは、PHPで実装できれば
幸せかな?と思う感じでいます。

夢を語ってすみません。
0191NAME IS NULL
垢版 |
2010/05/04(火) 02:20:52ID:???
PHPならMySQLとかPostgreSQLの方が情報多くね?
0192NAME IS NULL
垢版 |
2010/05/04(火) 06:54:32ID:???
>>191
PostgreSQLも気になりましたが、会社のシステムで、ユーザー登録が出来ないのと、
Mozilla好きな点から、firebirdが気になっています。
0193NAME IS NULL
垢版 |
2010/05/04(火) 10:05:36ID:???
>>192

君が先人(人柱ともいう)になりなよ。
先人は人の何十倍の苦労を背負うことになるけど、それだけの経験が得れる。

人の聞いてやってるやつは、そこしかできないから応用が効かない。

PHP & Web で構築ならそれもいいんじゃないか。
ただ、個人の趣味でないなら Firebird に執着するのはどうだろう。 Firebird を使うのはいいとしても他のエンジンの事は視野にいれておのがいいんじゃないかい。
0194NAME IS NULL
垢版 |
2010/05/04(火) 13:08:10ID:???
> Mozilla好きな点から、firebirdが気になっています。
関係あんの?
0195NAME IS NULL
垢版 |
2010/05/04(火) 13:20:30ID:???
大好きなMozillaプロジェクトからすら守り切った名前だからか?
0196NAME IS NULL
垢版 |
2010/05/04(火) 14:17:06ID:???
Mozilla関連だと勘違いしてるんだろうな
0197NAME IS NULL
垢版 |
2010/05/04(火) 14:22:42ID:???
Mozillaのメールソフト "Firebird"
と本気で思ってそうw
0198NAME IS NULL
垢版 |
2010/05/04(火) 19:29:21ID:???
Firebird好きには「Mozillaはウザかった」と思ってる人もいるのではないかな?
0199NAME IS NULL
垢版 |
2010/05/04(火) 20:14:34ID:???
いつからここはブラウザスレになったんだ?
0200NAME IS NULL
垢版 |
2010/05/08(土) 14:34:34ID:???
乗り遅れた・・・

Firebirdに限らず、会社で使うシステムを作るのに
HOW TOサイトを読まないとできないのなら、素直にやめた方がいいと思う
0201NAME IS NULL
垢版 |
2010/05/30(日) 01:39:28ID:???
firebireってバイナリが32ビットと64ビットで違うけど
64ビッド版のWin7で組込で動かしたい時は64ビッド版にした方が良いんですか?

出来れば32ビット版のWin7/XPでも動かしたいんで
32ビット版で両方動いてくれると嬉しいんですが・・・

アプリは..Net3.5で作る予定なんですが・・・
0202NAME IS NULL
垢版 |
2010/05/30(日) 02:06:03ID:???
32ビットのバイナリなら両方動くと思うが、
x64環境なら64ビットのバイナリを使った方が効率良く動くんじゃない?
0203NAME IS NULL
垢版 |
2010/06/10(木) 10:41:18ID:FnVYgiFo
Firebirdのインストーラーって何で作られてるんでしょうね?
インストーラーのスクリプトとかってCVSで取ってこれるのかなぁ???
0204203
垢版 |
2010/06/10(木) 10:54:36ID:???
事故レス:

Firebird-2.0.5.13206-0\src\utilities\install
にC++ソースみっけw

普通にgccでコンパイルするとsetup.exeができるんだろーか。
いじるにはキツそうだね。
0205203
垢版 |
2010/06/10(木) 10:59:19ID:???
事故レスP2:

ウィンドウを開いたりとかの記述が無いんだけど、
つまり、setup.exeを作る本体は別にありそうですね。。。
0206203
垢版 |
2010/06/10(木) 11:29:07ID:???
事故レス連投スマソP3.orz:

Firebird-2.0.5.13206-0\builds\install\arch-specific\win32

FirebirdInstall_20.iss
がありますた、つまりinno setupでつね。

ただ、環境変数をイパーイ設定する必用があるみたいで、
どうやるか分からないです。調べるしかないか。。。
0207NAME IS NULL
垢版 |
2010/06/11(金) 19:31:28ID:???
木村さんかはやしさんが見てそうなところ、例えばML(Yahooのやつ)で聞いてみるといいんじゃないかな。
0208NAME IS NULL
垢版 |
2010/06/14(月) 11:49:29ID:???
>>203
Embarcaderoの3月のデベロッパーキャンプで、はやしさんがInnoSetupの使用例として
Firebird のインストーラについてやってました。

公開されているのPDFの中に、Firebird のインストーラ作成手順について
書かれてますので、見てみてはどうでしょう。

ttp://edn.embarcadero.com/jp/article/40483
0209203
垢版 |
2010/06/14(月) 16:34:05ID:???
つ [d] >>208

FB用 inno setup のバージョン特定できますたw
0210NAME IS NULL
垢版 |
2010/06/17(木) 22:14:04ID:???
jaybird Class 4 JDBC Driver でトランザクションパラメータを
接続URL等の設定にて指定する方法はありますか?
FirebirdConnection#setTransactionParametersでもよさげですが、
dbcpを使っている関係上、FirebirdConnectionがラップされて
操作できないので。
0211NAME IS NULL
垢版 |
2010/07/06(火) 20:30:39ID:???
Firebirdって資料少なくて不安
0212NAME IS NULL
垢版 |
2010/07/06(火) 23:29:56ID:???
>>211
和書籍があるだけまだマシじゃない?
0213NAME IS NULL
垢版 |
2010/07/07(水) 10:41:45ID:eywZHyww
MySQLやPostgreSQLと比べると少ないですよね。特に最近はMySQLの書籍は多いし。
ところで、2.1と2.5ってどの位違うんですか?
使えるマシンには2.1しか入ってないんですが、2.5をコンパイルして入れた方がよいでしょうか。
かなり大量のデータを扱いたいんですが、サーバーも二種類あるようで、どれを使えばいいのか…
0214NAME IS NULL
垢版 |
2010/07/07(水) 17:56:51ID:???
OSがWindowsなら2.5のSuperClassicがいいらしい。まだRCだけど。
それ以外のOSはわからん。
0215NAME IS NULL
垢版 |
2010/07/14(水) 17:39:02ID:???
Linuxの上で2 5rc2触ってるんですが、create databaseをしても

Statement failed, SQLSTATE = HY000
Operating system directive mkdir failed
-File exists

と出てデータベースを作れませんし、既存のものも開けません。
ファイルのパーミッションは親ディレクトリも含めて全部出しても同じです。
どんな理由が考えられるでしょうか。。。
0216NAME IS NULL
垢版 |
2010/07/15(木) 12:06:02ID:???
なんか、Wiki が書き換え攻撃受けてるね
戻したけど自動でまた書き換えられてる
戻して凍結しようと思ったけど、パスワードがわからんわ
0217NAME IS NULL
垢版 |
2010/07/20(火) 11:33:40ID:???
バックアップが流されると困るんで、一応戻しておいた
>90 (2010-07-20 (火) 11:14:58) [ 差分 | 現在との差分 | ソース ]
またウイルスリンク書き込まれるだろうけど
0219NAME IS NULL
垢版 |
2010/07/23(金) 12:14:50ID:???
1.5でsysdbaを無効にすることってできますか?
0220NAME IS NULL
垢版 |
2010/07/27(火) 10:25:32ID:???
俺は常にsysdbaのmasterkeyだ
0221NAME IS NULL
垢版 |
2010/08/07(土) 23:26:42ID:???
データベースの移動について質問なのですが、
開発環境で
role_a
role_b
user_1
user_2
user_3
user_4
とかが居るデータベースを作って、その *.fdbファイルを本番環境に持って行ったとき
移動先の環境には、該当のロールもユーザーも居ない訳ですが、この場合移動先の
環境で、同名のロールやユーザーを作ったら使用できるのでしょうか?
もし、すでに同名のユーザー等が居た場合どう解決されるのでしょうか?
0223NAME IS NULL
垢版 |
2010/09/08(水) 11:34:43ID:???
wiki移転しました

10/31まではredirectされます

新しいurlは
ttp://firebird.00i.org/
0225NAME IS NULL
垢版 |
2010/09/17(金) 11:28:05ID:???
VB Express 2010で使いたいのですがどうすれば良いでしょうか
VB自体勉強を始めたばかりで右も左もわからない状態です
DDEXとか入れようとしたらExpressでは使えないようで困っています

0226NAME IS NULL
垢版 |
2010/10/04(月) 15:50:46ID:G2OJmUHf
2.5リリース!!
0228NAME IS NULL
垢版 |
2010/10/18(月) 11:48:41ID:2MZ2EDPI
FB EmbeddedってSQLiteと比べてどうなの?
0229NAME IS NULL
垢版 |
2010/10/18(月) 14:46:19ID:???
SQLiteにdomainに相当するものってないですよね?
0231NAME IS NULL
垢版 |
2010/11/10(水) 19:09:41ID:???
Embeddedで行ロックってできますか
マルチスレッドで利用したい
0232NAME IS NULL
垢版 |
2010/11/11(木) 00:00:31ID:???
>>231
行ロックとは、ほかのコネクションに対する排他制御。
組み込み型dbは、たいてい接続中ファイルロックする。
そのためほかがコネクションを取ることができない。
Firebird embeddedも例外ではない。

よって、マルチスレッド間で、行ロックしたいなら、c/s版を使うべし。

マルチスレッドってことは、servletで使いたいのか?
0233NAME IS NULL
垢版 |
2010/11/11(木) 08:21:50ID:???

embeddedだとDBロックってこと?SQLiteと同じ?
sqlserver compactだと出来るかな・・・

ちなみに.netアプリ
0234NAME IS NULL
垢版 |
2010/11/11(木) 08:37:41ID:???
Embeddedなんてダウンロードして10分もかからず実行できるのに、なぜ動かしもせずに質問する?
0235NAME IS NULL
垢版 |
2010/11/13(土) 23:02:16ID:???
>>232
>組み込み型dbは、たいてい接続中ファイルロックする。
うそつけ
0236NAME IS NULL
垢版 |
2010/11/17(水) 18:37:27ID:???
>>232
別にマルチスレッドだろうがシングルスレッドで別PCからの接続だろうが、DBへのコネクション毎での行ロックになるだろ。
なんでc/s版使えなんてことになるんだ?説明plz
0238NAME IS NULL
垢版 |
2010/11/18(木) 17:07:38ID:???
>>236
Embeddedはローカルからの1コネクションしかないのが前提だよ。
0239NAME IS NULL
垢版 |
2010/11/18(木) 19:22:01ID:???
>>238
たしか、2.5からその辺変わったという話があった気がしたので試してみた。

・アプリA(2.1.3Embedded), アプリB(2.1.3Embedded)

のそれぞれが同一のFDBファイルに接続しようとすると「別のプロセスが使用中です」となり接続できない。

・アプリA(2.5.0Embedded), アプリB(2.5.0Embedded)

の場合は、両方とも同時に接続可能になっていた。

アプリA(2.5.0Embedded), アプリB(2.5.0SS)での同時使用はダメだった。
0240NAME IS NULL
垢版 |
2010/11/18(木) 19:28:43ID:???
行ロックはできたの?
0241NAME IS NULL
垢版 |
2010/12/21(火) 16:41:41ID:mBWGka7c
最近No SQL系の記事が増えてきましたが、
Firebirdも流行ってまつか?
0242NAME IS NULL
垢版 |
2010/12/21(火) 17:27:03ID:LZd1X+vt
今も昔も流行ってるのはロシア、南米あたりだけかもー
0243NAME IS NULL
垢版 |
2010/12/22(水) 22:59:08ID:???
>>241
これはMySQLやPostgreSQL、Oracle、MS SQL Serverと同じジャンルですので、
NoSQLとは無関係です。

個人的にはHadoopは流行ると思います。
0244NAME IS NULL
垢版 |
2010/12/24(金) 12:54:48ID:gZ547/cW
すいません、質問です
少人数共用型DBでアプリを開発することになったのですが、
派遣先親会社のポリシーでDBサーバーのインストール(インス
トーラを使用してレジストリに登録が伴う)ができません
仕方がないので任意のユーザーにサーバーになってもらい、
そこに接続するようなような形にしたいのですが、FireBird
ならそれが実現できるのでしょうか?
なおSQLiteをテストしたところ読み出しは問題ないのですが、
書き込みがファイル単位のロックなので、サーバーが必須に
なりますが、残念ながら提供されていませんでした
0245NAME IS NULL
垢版 |
2010/12/25(土) 08:28:07ID:???
会社に言ってそれ専用の鯖立ててもらったほうがいいんじゃないの?
0246NAME IS NULL
垢版 |
2011/02/09(水) 16:08:58ID:Ftol3wAV
これってデータベースだったんだ
0247NAME IS NULL
垢版 |
2011/02/11(金) 20:01:44ID:???
>>245
糞の役にも立たないレスは要らんぜよ
0250NAME IS NULL
垢版 |
2011/02/24(木) 11:26:58.62ID:???
Firebird embedded serverとDelphiを使って、自分用のデータベースを作ろうと思ってます。

そこで質問なのですが、fbembed.dllをfbclient.dllかgds32.dllに変更しろとreadme.txtに書いてあります。
なぜ、リネームする必要があるのでしょうか?
試しにリネームなしに、fbembed.dllのままでもテストした際には、動作いたしました。
リネームしろと書かれているのですが、なぜリネームするのかは、記載されていないようです。
理由をご存知の方はいらっしゃいますでしょうか?

おとなしくリネームすればいいのですが、理由が知りたいと思います。
自分でリネームするなら、最初に配布する際にgds32.dllで配布すれば、良いのではないかと思ってます。
0251NAME IS NULL
垢版 |
2011/02/24(木) 14:47:19.31ID:???
特に深い理由はなさそうな
0252NAME IS NULL
垢版 |
2011/02/24(木) 16:16:01.69ID:???
>>250
自分で開発する時はなんでもいいと思う。

既存のアプリではgds32.dllじゃないと認識しない可能性があるから
ってことじゃないかと想像。
0253250
垢版 |
2011/02/25(金) 00:53:31.09ID:???
なるほどー。
既存のアプリでということは、歴史的な背景から、以前は、gds32.dllもしくはfbclient.dllだったのかも
知れないですね(知らないですけど)。で、何かの都合で、fbembed.dllに名称を変更したと。
アプリの変更なしに、データベースのバージョンを上げたい場合などは、gds32.dllが無いじゃないかと
なるので、readme.txtの中に変更しろと書かれているんだろうと。

でも、初めて使う人には、そのリネームの理由が書かれていないので、私みたいに疑問を持ってしまう
人も出てきてしまっているということでしょうか。
ここまでわかっている情報の中で想像してみました。
本当の理由を知っている人がいたら、教えてください。
0254252
垢版 |
2011/02/25(金) 03:54:54.18ID:???
>>253
えと、エンドユーザじゃなくて開発者ですよね?だったら同梱するdllの名称を決めるのは
自分でしょ?自分の作ったアプリに読ませるdllの名称なんて基本的に自由なんだけど。

経緯を説明すると、gds32.dllというのが当初からの名前。これは前身のInterbaseのさらに
前身のGDSから受けつがれている。過去のクライアントアプリは通常gds32.dllを探すように
プログラミングされているため、互換性のためにFirebirdでもこのファイル名を使っている。

Interbase6とFirebird1.0の時点では相互の互換性があったのでこれで問題なかったが
ところがInterbase7とFirebird1.5あたりから相互の仕様に食い違いが発生してきた。
お互いが仕様の違うものをgds32.dllという同一名称で配布したら上書きしあって
混乱するから、Firebirdはfbclient.dllという別名称を作った。Interbaseはibclient.dll
だったかな。

ただ、既存のアプリはgds32.dllという名称でしか理解しないものが多いのでそういう
アプリのためにサーバ接続用のクライアントにはgds32.dllも同梱されてる。

上記はFirebirdクライアントやサーバのインストーラの話。自分がアプリを作る場合は
何という名前で配布するか決めるのは自分。アプリのインストール環境がどうなっている
のかInterbaseかFirebirdのクライアントがすでにインストールされている可能性がある
のかないのか。ある場合はgds32.dllが2つあって混乱しないか(名称は同じでも機能は違う
のでアプリが誤認すると誤動作する)。そういうことを総合してどういう名称にすべきか
決めればいい。別にoresama.dllでも良いわけだし。

fbembed.dllのまま使えばそういう実行環境での混乱はない。じゃあなぜそれを推奨しないのか。
既存アプリがそれじゃ使えない場合もあるからだ。たとえばIBConsoleは(多分)gds32.dllしか
理解しないし、Delphiのコンポもgds32.dll決め打ちのやつもある。正解は一つじゃない。
だからfbembeded.dllで配布され、必要ならgds32.dllに変えろというわけだ。

これで良いかな?
レスを投稿する


ニューススポーツなんでも実況