InterBase。 コンパクトで一通りの機能がそろっているデータベースサーバ。 マルチプラットフォーム、UNICODE、レプリケーションをこなし、 クライアントへのイベント通知(InterBaseの特許)といった特異機能もある が、情報が少ないのでココで盛り上げていきましょう。
2 :
デフォルトの名無しさん :02/03/04 23:01
関連ページにリンクを貼って。
なんだ暴乱怒か。いらねーな。
某スレは人気ねーな・・・メインで使用してるのにな。漏れはな。
BDEと比べて何がいいの?
BDEと何を比べるのだ?Interbaseと比べるのか?
8 :
デフォルトの名無しさん :02/03/05 05:09
Delphi6Proに付いて来た版をDelphi6Proのチュートリアルの通りに試しただけの素人ですけど ・BDEはファイル=テーブルだが、InterBaseはひとつのファイルに 複数テーブル置けるっぽいのでリレーショナルが楽かな? ・でもいちいちサーバー起動させないといけないっぽい。 常駐させる気はさらさらないので、個人じゃオーバースペックかな…。 (Delphi/C++Builder/Kylixの有償版ならMyBaseが使えて個人ではそっちが便利そう) という感じです。 「個人で」本格的に使っている人いたら、使用感を聞かせてください。
9 :
デフォルトの名無しさん :02/03/05 22:24
>>6 Paradox,DBaseなどのファイル共有型とくらべてかな?
もちろんネットワーク共有だとInterbaseの方が有利。
ファイル共有型だとページロックでかなり待たされる。
それから内緒だけど米国サイトでダウソしたIB6.0のバイナリには
日本の某からダウソしたIBConsoleが使えるよ。
ところで誰かジェネレータの初期値のセットをクライアント側で
行わせる方法知らない?isql以外で。
10 :
デフォルトの名無しさん :02/03/06 00:23
知らない。 もっとFireBird 使えやコラ!
FireBirdはソースを刷新してる最中らしいから 安定板がでてかな。IBとの互換性がどの程度保証 されるかが気になる。
12 :
デフォルトの名無しさん :02/03/09 01:08
firebird まだ 1.0 出てなかったんだ… InterbaseはSQLの勉強に使ったよ。 Linuxでも動くしね。
>>9 SET GENERATOR TableName TO 100;
でいける
副問い合わせとか使えないから
複雑な問い合わせは
ストアドプロシジャになってしまう
古いIBConsoleではシステムテーブルも見えて他のに
新しいのに変えたら出てこなくなりました
表示させる方法ない?
14 :
デフォルトの名無しさん :02/03/11 06:07
15 :
デフォルトの名無しさん :02/03/11 09:14
>>11 Firebird1.0とInterbase6.5はそれぞれ独自の拡張が入ってるので
互換性はないっぽい。
IBXがInterbaseでのみしか使えなくなると痛いよぅ…
IBOはFirebirdもサポートしていくらしい。
フリーで使えるのはIBXぐらいしかなかったような IBOってフリーじゃないよね?
17 :
デフォルトの名無しさん :02/03/13 10:09
Firebird 1.0.0 出たね
今ちょうどDelのParadoxのアプリをInterBase(客先へはFireBird)へ移植作業中 ParadoxのTTableを単純にInterBaseExpressのTIBTableへ置き換えると失敗する 主にTIBDataSetを使うべしだね
19 :
デフォルトの名無しさん :02/03/13 15:55
>>18 FireBirdで納品か、理解あるお客さんだなぁ…
TIBTableはIBX作者自身が「使うんじゃねえ」って言うぐらいパフォーマンスに
問題があるらしい。
こりゃすげースレだわ。
>>19 計算項目の中でおなじテーブル(もちろんコンポーネントは別)を参照した状態で
Locate すると凄まじい数の Scroll が発生して使い物にならなくなる
Paradoxでは平気なんだけどね
あ、勘違いだ・・・参照項目を使ってるだけでもアウトくさい とにかく使っちゃ駄目なコンポーネントだねTIBTableは
>>22 というより、Firebirdで納品するのにIBXは使っちゃ駄目な気が…
>>23 おろ・・・情報サンクス
ライセンスか、動作上の問題か・・・とにかく調べてみるよ
動作の方は、今のところ大丈夫みたいなんだけどね(FireBird 1.0で)
>>24 動作上の話。ライセンスは問題ないはず。
IBXはFirebirdはサポートしないと明言してる(当たり前か)し、Firebird1.0で
多少(DBの情報取得系)のAPI拡張が入ってる。
今はまだいいかもしれないけど、この先InterbaseとFirebirdはどんどん違う物に
なっていくのは必至。そしたらIBXもIBXを使って作られたツール類(IBConsoleとか)
もFirebirdでは使えなくなるかもしれない。
Firebird1.0はSQLの拡張も入ってるけど、拡張部分は当然Interbaseとの互換性は
無くなってるから、両方使い分けるって事も難しくなってくる。
いやさ、同じことで悩んでる最中でさ。どうしたもんやら…
IBOは有償だし日本語ドキュメント皆無だし。
>>25 なるほど・・・
IBXを使うなら基本的な機能だけにとどめて
ちゃんと動作したら、以後はむやみにバージョンアップしないという
・・・「逃げ」かな
とにかく、貴重な情報でした・・・どうもありがとう
いや、それでも IBX でいいんじゃないか?
あ、よく考えたらIBXてばソース公開されてるし、IPLだからソース改変→再配布OKだし その気になれば自分でFirebirdに追従していけばいいのか。 つーかその時が来れば誰かが何とかしてくれそうな気が…(他力本願
教えてくんでスマンが、InterbaseかFirebird用のOLEDBプロバイダってどっかにない? これ有れば、メインで使うんだけど…
31 :
デフォルトの名無しさん :02/03/16 22:57
InterBase の クライアントって gds32.dll だけでいいって本当ですか?
33 :
デフォルトの名無しさん :02/03/16 23:05
>>32 接続用ライセンスファイルが必要。
Firebird なら関係ないはず。
>30-31 サンクスコー! やっとストアド使える環境に以降できるさ…
>>33 なるほど。FireBird なら gds32.dll だけか。楽だなぁ。
とすると、DB をFireBirdにして
Delphi で IBX 使って作ったシステムだったら
アプリのフォルダに gds32.dll を入れて
フォルダ毎コピーすればインストール完了ってこと?
ほとんど趣味でプログラムやってる者です。 Delphi5のPRO版に付いてきたけど、あえて個人で 使うメリットってあります? 普段は普通に標準DBコンポをParadox形式で使ってます。
37 :
デフォルトの名無しさん :02/03/16 23:35
イマイチ盛り上がりに欠けるね。 技術版らしく、技術の比較でもしてみるけ? 無料で使えるという観点で、ライバルと目されるのはPostgreSQL、MySQL、MSDEあたり? 機能、速度、安定面から比較は有意義かと思うが、どうよ?
>>36 大勢が同時にアクセスするのでなければParadoxで十分でしょ
(Delphiで一番扱いやすいのはParadox)
ただ、趣味としてでも本格的なデータベースを使ってみるということなら
それはそれで楽しいと思いますよ
39 :
デフォルトの名無しさん :02/03/17 00:08
>>35 >アプリのフォルダに gds32.dll を入れて
>フォルダ毎コピーすればインストール完了ってこと?
InterBase インストール先のレジストリの設定が必要だと思う。
Firebird はインストーラでしかやってないからどうだか知らない。
>>39 >InterBase インストール先のレジストリの設定が必要だと思う。
ごめん。いらないかも。自分で試してみて。
41 :
デフォルトの名無しさん :02/03/17 00:35
あのう、削除してもファイルサイズ小さくならないですよね。 削除して登録すると登録件数が同じでも前より大きくなりますよね。 使っているとだんだん大きくなってきますよね。 どうやったら削除したレコードを完全に消せてファイルサイズを小さくできるんですか? いくらハードディスクが大容量になったとはいえ、ファイルサイズが大きくなり続けるとハードディスクがすぐパンクしてしまいます。 バックアップも大変です。 どうしたらいいんでしょう?
>>37 とりあえず Firebird の良いところ)
・マルチプラットフォーム対応(Win,Linux,FreeBSD,Solaris,MacOS,...)
・1DB=1ファイルのためバックアップも楽だし管理し易い
・SQL92準拠(だったかな)
・さまざまなI/Fミドルウェアがある
・UDFで独自関数拡張できる
Firebird の欠点)
・
>>1 の言うように情報が少ない。特に日本語解説サイトが極少。
現状では、InterBase5 の日本語マニュアル(PDF)でなんとかなるが。
InterBase は商用に戻った時点で×。(客先指定以外はもう使わない。)
以前 Postgres 使ったことあったが、Win版がないから使うのやめた。
(cygwin で動くみたいだがネイティブじゃないとね。)
ML も活発だし情報量は一番なんじゃないかな。
MySQL はつかってないから知らない。(トランザクション未対応?)
MSDE はインストールがめんどい。
あと接続数の制限があったような気がする。
あと Win でしか使えないのが×。
43 :
デフォルトの名無しさん :02/03/17 00:58
>42 Firebird最大の欠点は知名度の低さだとおもいます。 お客様に信用してもらえない。
>>41 スイープすれば小さくなるよ。
Win版のInterBase使ってるなら「Server Manager」GUI ツール使えば簡単。
BorlandのサイトにInterBaseの参考書籍として載っているのは 「データベース Linux InterBase 4.0 For Linux」と 「データベース Linux Java ServletによるWebサーバー構築 編」の2冊 1冊目の方のInterBaseも小さく書かれているし 2冊目には至ってはタイトルからInterBaseを想像することは難しいくらい なのにどちらもメインの開発環境はなんとDelphi(どこかLinuxじゃこら!) Kylixが出てからならまだしも2冊目ですら2年前に出版されてるのに これほどタイトルと内容の一致しない本は珍しいと思ったよ
>41 PostgresでいうVACUUMが必要だと思われ。 Interbaseは指定回数のトランザクション処理後に自動でガベージコレクション発動じゃなかったっけ? 詳しい人かもーん。
>>44 スイープっていうの?
Server Managerというのでできのですね?
ありがとう。
>>43 >Firebird最大の欠点は知名度の低さだとおもいます。
>お客様に信用してもらえない。
「InterBaseなら信用してもらえる。」ってこと?
素人のお客なら、「DBMS」ってこと自体知らないから楽。
現にこの前 Firebird 1.0RC2 使って納入したよ。
当初DBサーバをXPにする予定だったけど、
コネクション時間が異常に掛かる問題が出て(Firebird のバグかな?)
Win2K に変更してもらった。それ以降、今のところ問題は出ていないけどね。
>>47 データベースのスイープってみたいなメニューがあると思うよ。
念のため実行する前に一度そのDBファイル(.gdb)バックアップ取っておいた方がいいよ。
(単にそのDBファイルをどっかにコピーしとくだけでいいけどね。)
>Interbaseは指定回数のトランザクション処理後に自動でガベージコレクション発動じゃなかったっけ? ・デフォルトでは20000トランザクションでスイープ ・gfixを使って回数を指定可能 ということのようだね
>>47 IBConsoleのメニュー
「データベース」-「メンテナンス」-「データベースのスイープ」
でできるよ
52 :
デフォルトの名無しさん :02/03/17 02:12
スイープしなきゃだめなの? レクラメーションしてくれないの?
>52 手動でしたくなきゃ >50 の方法で対応すれば? 頻繁に更新トランザクションがあるわけじゃなきゃほっときゃいいけどなぁ。 オレの場合、数十万件/数十MB弱(数年経過もの)のDBやってるけど、 スイープは一度しかしたことないよ。 (追加は多いときで数百件/日、変更、削除はそんなに発生しない。) 別にスイープしなくても問題なかったけど、MOとかにバックアップするのに 容量食ったからという理由くらい。
訂正) × 数十万件/数十MB弱(数年経過もの) ○ 数十万件/100MB弱(数年経過もの)
55 :
デフォルトの名無しさん :02/03/17 04:51
gbakのバックアップから戻してもサイズが小さくなるね。 それにしてもすぐdatおちするかとおもえば結構使ってる人いたんだね。
56 :
デフォルトの名無しさん :02/03/17 07:30
interbaseはどの程度の規模のシステムまでつかえるのでしょうか 企業ではoracleがよくしようされているが oracleはデータエリアを確保しておく必要があったり 設計事態が一昔前のホストコンピュータみたいでものすごく使いにくい。
57 :
デフォルトの名無しさん :02/03/17 12:14
少ないリソースで動く(らしい)のも魅力だよなー。 客先にプレゼン逝くときにノートにOracleなんか入れてられないし。 いまやってるシステムもOracle使うほどの規模じゃないから InterBase使いたいが、誰も知らないという罠 某ももうちょっとマーケティングに力いれろYO!
>56 ↓にInterBase5.5 のデータベース仕様が書いてある。 www.borland.co.jp/interbase/papers/ib55wp/ib55wp_2.html 実際にはどの程度の規模までなら安定して使えるかはわからないから、 検討しているなら Borland に問い合わせてみた方がいいよ。 ↓ケーススタディ www.borland.co.jp/interbase/cases/
59 :
デフォルトの名無しさん :02/03/17 21:00
ケーススタディをみると、確かに結構規模の大きいシステムの例も あるが、売買データなど非常にシビアなシステムの例がちょっと 少ないと思えるがどうなんでしょう。
60 :
デフォルトの名無しさん :02/03/17 21:04
ORACLEて、ろくなサポートしないくせに保守料を取ったりして 殿様商売している。 INTERBASEを使っているわけではないがORACLEと比較して 保守が非常にやりやすいのではないでしょうか ORALCLEは領域確保など必要で昔のオフコンみたいで使いにくかった と記憶しているが INTERBASEが中規模のシステムで本当に使えるならこちらを使いたいが 会社の何もしらない社長なんかがORALCE使えとうるさいが。
62 :
デフォルトの名無しさん :02/03/17 22:17
金が絡んだちょっとシビアなシステムを開発するときは 排他制御やロールバックなどがきちんとできるか、どの程度の同時アクセスに 耐えられるかを知りたい。 これは他社の例を参考にするだけでなく (システム特性は個別に異なるため) INTERBASEを小規模なシステムから適用して自分で確認するしかないのでしょうね。
日本語カラム名を使いたいなんて厨房発言する SIerには、お勧めしない。
金の絡まないシステムに暫く使って様子見ようかね。 一つ心配なのが、Interbaseが有償に戻ったことで、Firebirdにどういう影響でるんだろ? 独自拡張の道を歩んでIBとは別物になっていくのか、追従し続けていくのか… 独自で行くならIBConsoleはつかえないんだよね?
>>64 別物になっていくんだろうね。Firebirdも1.0からコードベースをC++に移行したり
してるところを見ると、Interbaseに追従する気も無いんじゃないかな。
BorlandがInterbaseのすべての変更をオープンにしない以上は、追従しようと思っても
出来ないよね。
Firebird1.0で拡張されたSQLの目玉部分である、取得行の絞り込み(コレがないから
Interbase使えないって人も多かったと思う。特にWebアプリ)は、Interbaseでも実装
されるんだけど構文は全く異なることから、これからは別物のDBMSだと思った方が
いいと思う。
細かい話はここ参照
http://www.ibphoenix.com/ibp_news_art8.html IBConsoleは少なくとも今現在は問題なく使用できるけど、将来に渡っても問題なく
動作するかどうかは分からない。
でも、IBConsoleより遙かに高機能で使いやすい管理ツールはたくさん公開されて
いるから、今後IBConsoleを使用し続ける積極的な理由も無いと思う。
>>65 先月のデータベースカンファレンスにAnn Harrisonが出席してて、「C++で書き直しているってことは、FirebirdとInterBaseは別物になるんですか?」という質問に対し「Absolutely!」ときっぱり言い切っていました。
Firebird の日本語オフィシャルサイト設立希望。 日本語マニュアルがあればユーザ数が激増すると思う。
そうだよな、やっぱ情報量の少なさが最大のネックだよな… このスレの名称も「Firebirdを使いこなすスレ」の方がヨカタかも
69 :
デフォルトの名無しさん :02/03/18 22:31
厨房ですまそん なんかインストール中にSETUPAPI.DLLが無いって言われるんです。 だれか、対処法を知りませんか??? delphi関係で質問したけど、反応無かったのでこちらに 再度カキコさせていただきました。 W2KのIB5です。
70 :
デフォルトの名無しさん :02/03/18 22:31
>>67 日本語マニュアル以前に、本家のマニュアルもいまだ存在しないと言う罠…
sage進行じゃないよね? age
>>70 今のところはInterBaseのマニュアルで代用だね〜
もっともInterBaseのための書籍も極端に少ないけど
72 :
デフォルトの名無しさん :02/03/18 22:51
>>72 おおおおおおおおおお!
いくら日本のページ探しても、出てこないわけだ・・・
どうも、ありがとうです。
漏れの持ってる、翻訳ソフトちょっと、オもろかったので
載せちゃいます。
以下、英訳
InterBaseインストールがファイルsetupapi.dllをインストールしていて、 setupapi.dllのすでにインストールされたバージョンを踏みにじっている ので、このエラーはoccuringしている。 ・・・踏みにじらないで(藁
76 :
デフォルトの名無しさん :02/03/19 00:50
>69 >72 昔やったとき、Win2K(たしかSP1) + IB5.6 でちゃんとインストールできたよ。SP2 はダメなのか?。 動作保証されてないってことだけど、この組み合わせでやって動作上の問題は出なかったけどね。 (今はもう Firebird に移行しちゃったよ。)
>74 翻訳の王様バイリンガルVer.5編) InterBaseインストールがファイルsetupapi.dllをインストールして setupapi.dll.のすでにインストールされたバージョンで足を踏み鳴らしているので、 このエラーは起こっています。 ほぼ同じだがoccuringが一応変換されてる分ましかな?
同一マシンに InterBase と Firebird 両方インストールできるようにしてもらいたい。 とりあえず Firebird をメインにしてくつもりだけど、今までしてきた仕事のこともあって InterBase 入れておかないとならないから。 (今は InterBase用と Firebird用マシンを分けて使っています。) それから Firebird なのに "InterBase ..." や "IB..." という名称使わないようにしてもらいたい。 ibguard => fbguard ibserver => fbserver /opt/interbase => /opt/firebird IBExpress(IBX) => FBExpress(FBX) InterClient => FireClient? *.gdb => 違う拡張子にして。 gds32.dll => 違う名前にして。 isql => 違う名前にして。 などなど。 以上、My要望でした。
追加です。 サービス名やデフォルトのポート番号も変えなきゃだめだね。 gdb_db => firebird_db? とか。 IBServer 3050 => FBServer 3051とか。 InterServer 3060 => FireServer? 3061とか。 ってココで言っても無駄だけど。
>>78 そりゃさ、両方生かしたい人もいるだろうけど、フツーは下手に環境いじらなくても
移行出来ることを期待するのが大勢じゃない?
81 :
デフォルトの名無しさん :02/03/20 00:49
>>78 そら、InterBaseのバージョンが上がったって同じことなんじゃないの?今のとこFirebidとInterBaseの違いってそんなもんでしょ。
>>80 とりあえずは、同名でも両方インストールできればいいけど、現にできないし、
今後両者は違う路線を行くようだから、そうなった場合にややこしくなると思う。
それじゃ自分が使う方1本に絞ればいいかというと、やっぱそうはいかない。
過去の仕事=InterBase5.x
今後の仕事またはプライベート=Firebird
ということで、InterBase は当分対応しなきゃならない。
もし客先にバージョンアップしてもらうにしても、
IB5 => IB6以降の移行は考えられても、Firebird はまず考えられない。
現状「IBで」安定して動いているからだし、まず客先がYesというかどうかということもあるから。
>>81 InterBase 複数Ver.が同居できるに越したことはないけど。
ただ、InterBase のバージョン間については互換性があると
いうこと前提で考えるとそんなに問題はないと思う。
InterBase と Firebird は別物ということになると、
両方インストールできないとまずいということ。
> 今のとこFirebidとInterBaseの違いってそんなもんでしょ。
もうすでに(Firebirdの)独自仕様の機能があって、それ使ってるけど。
>>78 おいおい、なんのためのオープンソースだよ…
Windows95へFireBird 1.0RC2 をインストールしようとしたら 1台はうまくいって、もう1台はうまくいかなかった うまくいかなかった方はさきにgds32.dllをコピーしてみたり いろいろいじったのがいけなかったのかも知れないけど ・・・レジストリを一旦消してみるかな
86 :
デフォルトの名無しさん :02/03/20 22:59
>>85 1.0.0が出てるのにRC2を入れたのはなんで?
>>86 先日、客先へ持っていったときは1.0.0が出てたのに気付いてなかったから(恥
やっぱそのほうがいいよね・・・とりあえずInterBaseとの互換性とかを再チェック
>>87 つーか、客先にDBMSのβ版入れる常識の無さを小一時間…
>>88 オープンソースのベータ版と商用ソフトのそれとでは、ちょっと意味が違うからね。要は使う人次第だと思うが。
90 :
デフォルトの名無しさん :02/03/25 22:44
おい、貴様ら!ageて下さい!
91 :
デフォルトの名無しさん :02/03/25 23:58
FireBird のクライアントに何を使っていますか?IBXですか?
>>91 なんでそんな結論を?
Linux と Solaris での「動作保障」をしているが?
オープンソースだからコンパイルできます。ってことだけでサポートを
気にしなくてよいならそれこそほとんどすべての Unix で「動く」よな?
RIOSのMLに入れば少し情報が増える。 某社を退社してフリーになった加藤大受氏もたまに見受けられる。 (一応 FireBird プロジェクトのメンバーは続けてるみたいよ。)
大受がいなければ IB ももう少し広く使われたかもねぇ。 いやほんとに惜しい。
FireBirdはWinSock2が必要みたいだね ところが古いWin95(WinSock1.1)へWinSock2を入れようとしたら 「WinSock2を入れるには1.7GB(!)必要だ、容量が足らん」 というたわけたメッセージがでてインストールできんかった Win98へ上げるしかないか・・・
98 :
デフォルトの名無しさん :02/03/29 19:01
>>96 セールストーク以外の大受と付き合ってみればわかるよ....
なんであんなやつを野放しにしていたのか > 某
100げと
彼のHP見ても悪い人間には思えないのだが・・・ (しかしプログラムのプの字もないページだわ。)
102 :
デフォルトの名無しさん :02/03/30 18:18
なんで某がまともにPRしないかがわからん。いい商品なのに。
103 :
デフォルトの名無しさん :02/03/31 11:31
使いこなせる人間が少ないって事だろうな。 ACCESSと同じ感覚で買った人が失敗すると。(w そういう厨房に対応するのが嫌だから積極的に売ろうとしない。 ORACLEに比べりゃ格段に簡単なんだけどねえ。
FIBPlus は無償なんでしょうか?
105 :
デフォルトの名無しさん :02/03/31 13:51
>>102 あくまで日本某がPRしてないだけで、外国では結構使われてるっぽい。
なんでだろう、日本のSIはどこもかしこもOracleべったりで、もう金かけてまで横取りする
パイもないと思ってるんじゃ無かろうか。
特にこれからの世の中、いままでコンピュータと付き合っていなかった中小レベルの企業が
システムを導入する機会は右肩上がりで増えていくと思う。
そういう案件でのInterBaseの価格と利便性と、長年実務で叩かれてきた信頼性ってのは他が
マネできないメリットだと思うのだけれど、素人考えなのかしら。
ところで、InterBase関係検索すると結構な確率でロシアのページが引っかかるのが意外。
106 :
デフォルトの名無しさん :02/03/31 16:58
たしかによく見かけるね、ロシア >> 105 案外ロシアではシェアNo.1のRDBMSだったりして。
107 :
デフォルトの名無しさん :02/04/01 10:34
isc_commit_transaction と isc_commit_retaining ですが、APIヘルプを読むと isc_commit_retaining のほうが速度、リソース共に有利みたいなことが書いて あります。常にコミット時は無条件に isc_commit_retaining を使用していれば いいのでしょうか? 双方の利点、欠点など教えて下さい。
108 :
デフォルトの名無しさん :02/04/01 19:57
結構コアなネタが多くて、恐縮ですが、 InterBaseが使えるホスティングやレンタルサーバ会社って、ご存知ないでしょうか?? できれば、日本の業者が良いと思っております。海外でしたらいくつか存在しますよね。 1台丸々借りればよいのですが、金銭的に個人ではなかなか手が出るものでなく、 もう少し、リーズナブルなものを探しております。 ご存知の方がおられましたら、お知恵を拝借したいと思っております。 よろしくお願いいたします。
109 :
デフォルトの名無しさん :02/04/01 20:07
>>108 PostgreSQLあたりなら結構使わせてくれるところあるでしょ。
どうしてもInterbaseでないとダメ?
110 :
デフォルトの名無しさん :02/04/01 20:38
PostgreSQLやMySQLは、たくさんありますよね。 実際、今借りているホスティング会社さんはMySQLです。 別に不満があるとかではなく、社で使ってることもあって、InterBaseが好きなんです(^^; (比較もしてみたいですしね。速度や使いやすさとか) それで、情報だけでも・・・と思って、投稿しました。 #ほんと日本語情報は少ないですよね。 #BLOBを扱う時は大変でした(笑)
111 :
デフォルトの名無しさん :02/04/01 20:40
>>110-111 うーん、Firebirdが国内でもっと実績出してどこかが導入し出せば広まるのは
速いんだろうけど…まだまだ知名度が低いかな。
# PHPでBLOBでInterBase…?
# 最近某所でそんな質問見たような…
>>112 出ていましたね某MLで(w
でも、私が、ぶつかったのはちょうど1年程前の話しですから、記憶も薄く(ぉ
投稿した方に助言はできなかったんですけれども。(^^;
とりあえず、英語だろうとなんだろうと、必死でGoogleと戦った記憶があります(w
# Cが理解できれば、もう少しコアな話題にも参加できそうなのです。
# PHPのソースが解読できるようになれば、そこから切り崩せますし。
114 :
デフォルトの名無しさん :02/04/02 10:09
>>114 ありがとうございます。
そうなんですよねぇー。サーバ丸ごとだとあるんですよね。
ホスティングするとき、InterBaseだと管理しにくい事とかあるんでしょうかね。
116 :
デフォルトの名無しさん :02/04/02 22:34
>>115 データベースファイルをシステムのどこにでも配置できるから、却って管理しやすいことはあっても、管理しにくいってことはないでしょ。1データベース1ファイルだから、バーチャルホストでの容量管理もラク。知名度が低いってのが、唯一最大の欠点。
客先にプログラミングの分かる人がいれば ボーランドの知名度はけっして低くはないので 「ボーランドのInterBase」といえば比較的信用してもらいやすいかも 俺の場合は「湾岸戦争で米軍が使った信頼性の高いDB」という謳い文句で InterBase(FireBird)の使用を客先に納得させた
118 :
デフォルトの名無しさん :02/04/03 09:47
>>113 そのPHPなんだけど、interbase extensionの開発者が行方不明で、PHPがSEGVるバグが放置されたままなんだよな。
118>> そういうのを修正できるだけの技量が欲しいです。 やはり、Cやらなあかんか(w
120 :
Review :02/04/05 21:12
IBPhoenix で 紹介されている管理ツールを一通り使ってみました。 日本語対応しているものは、一つもない。データを書き込むと文字化けして表示。 (DBにはきちんとデータが入っているが管理ツールがダメ。) いちばん使いやすいのは ぶっちぎりで IBWorkBench デザインも綺麗で使いやすい。 値段は$180くらい。業務で使うのなら買っても損しないと思う。 IBWorkBench のサポートにE-mailで問い合わせたところ、次のバージョンで 中国語と日本語に対応することが決定しているらしい。少し待ちかも。ちなみに、FBをサポートしてる。 あと、ODBC関連もIBPhoenix、XTGと使ってみたけどAccessからは使えないみたい。 Twise Lab のODBCはAccessから利用できるので便利でした。 そんな感じです。
75 も紹介していたけど Linux Bussiness Vol.3 のインターベースの解説は、 とっかかりに非常に良いです。昨日、本屋でたまたま見かけて買いましたが。
122 :
デフォルトの名無しさん :02/04/08 18:01
なんとなくFirebird(日本語版)入れてみたけどいきなりわからん loginパスワードってどこに書いてあんの
IBだったら'SYSDBA' 'masterkey'がデフォだったかと。 (FireBirdは違うかかもなぁ。)
125 :
デフォルトの名無しさん :02/04/08 20:48
うぐぅ、masterkeyでだめだったぞ つうかmasterkeyとだともどこにも書いてないぞ
>>125 おかしいな・・・
SYSDBA、masterkeyで間違いないけど
Caps Lockとか入ってない?
120です。訂正。Marathon は日本語が文字化けしませんでした。
http://www.gimbal.com.au/ さらにフィールドの追加やデータ参照などが簡単にできるので、今のところ一番使いやすいと思われます。
あと、OpenSourceで無償で使えるようです。ライセンスはMPL。
Win再起動したらいけた、酢マンコ
129 :
デフォルトの名無しさん :02/04/08 23:59
InterBaseって、ある一定の回数のトランザクションを実行すると 自動的にガベージコレクション発動って勘違いしている人は結構多い。 普通にトランザクション開始、コミットしている分にはガベージコレクション は発動しない。ちゃんとマニュアル読もう。
130 :
デフォルトの名無しさん :02/04/09 00:04
InterBase5の致命的な欠点。それは、大量のレコード(1000件程度) をdeleteした後、そのテーブルに対してselectするとそのselectの 実行時間が絶望的に長くなること。通常1秒くらいで終わるselectが 30分以上かかったりする。どうもselectしたときに削除マークのついて いるレコードをガベージコレクションしているみたい。システム組むと きは要注意。InterBase6は知らない。
131 :
デフォルトの名無しさん :02/04/09 09:15
>>129 これやね。英語のマニュアルで読み下すのは大変だよぅ。
つーことでIB5のマニュアルから抜粋。
自動保守
アクティブな(未解決)状態のトランザクションを「懸案の」トランザクションと言い
ます。データベースのトランザクションインベントリで,「コミット済み」以外のステー
タスを持つ最初のトランザクションは,OIT(Oldest Interesting Transaction:最も古い懸案
のトランザクション)と呼びます。クライアントが新しいトランザクションを起動して,
トランザクション番号がOIT の番号を超え,ある閾値より大きくなった場合,InterBase
はデータベースの全面的なスイープを始めます。この閾値はデフォルトでは20,000 トラ
ンザクションですが,設定を変更できます(135 ページの「スイープ間隔と自動保守」を
参照してください。
ノート
20,000 トランザクションごとに自動的にスイープされるとは限らない,ということは微
妙ですが重要な特徴です。OIT と最新のトランザクションの差が閾値に達するときにだけ
スイープされます。データベースに対するすべてのトランザクションがすぐにコミット
される場合,この差は自動的なスイープの引き金となるほど大きくはありません。
InterBase サーバープロセスは,特別なスレッドを起動して,このスイープを不定期にコ
ミットします。その結果,クライアントプロセスは機能し続けることができ,スイープ
による作業量には影響されません。
gfixを夜間に走らせるのが吉。
133 :
デフォルトの名無しさん :02/04/09 22:48
>130-132 で、FireBird は大丈夫なの?よければ教えて。
>>130 詳細をキボンヌ
deleteした後で
commitしてからselectした場合なのか
commitせずにselectした場合なのか(普通こんなことする?)
回避の余地がないのかなど
deleteの仕方でもいろいろあるはずだし・・・
where句でまとめてばっさりとか、ループでcommitしながらしこしことか
とりあえず、自分でも試してはみるけど・・・
>>135 今、ちらっと眺めたけど
gds32.dllをただコピーするだけじゃ駄目だったと思うよ
最小クライアントでインストールするのが確実
また、WinSock2が必要だからWindows95だと駄目な場合がある
あと、Del6ProならローカルInterBaseが付いてくるから
IBConsoleでもデータベースの作成・管理ができたと思う
>>135 新入社員のやっつけ報告書みたいなページ…
きっとこれからがしがし更新されるんだよね。がんがって!
Marathonいいかなぁ…
全然バージョンアップしてないし、Open Source唄ってる割にどこにもソースがないし
頻繁に落ちるしですぐ捨てちゃった。
自分はMiTec IB Queryは使い勝手が良くてメインで使ってる。
138 :
デフォルトの名無しさん :02/04/11 00:34
>>134 やりかたは簡単。レコードがたくさんある(1万件程度)テーブルに対して、
delete from テーブル名
whereを指定してもよいけど、とにかくたくさんdeleteされるように。
そのあと、そのテーブルに対して
select count(*) from テーブル名
別にcount(*)でなくてもよい。ちょっとシステム組むのにためらいを
感じる結果になる(バッチ処理なら問題ないかも)。回避方法は、一度に
たくさん消さないことかなぁ。早めに気がついて本当に良かった。
InterBase5の話ね。InterBase6は知らない。
>>138 レスどうも
今、FireBirdでやってみたところ
1万4000件あるデータから1万件まとめて(where句で)削除した直後の
select count(*) from テーブル名
は一瞬で処理されたよ
(1万4000件のデータを書き込むのには少し時間が掛かったけど)
ただ、30の書き込みを見て気になったのは
「削除マークのついているレコードを」の部分
DBの実装の話ならそのとおりだろうけど
まさかdeleteの直後に
select文をdeleteに対するcommitなしで発行したっていうことではないですよね
だとすると、DB設計者からすれば想定外の使い方かも知れないと思ったりする
(漏れにも今までにそういう使い方をしなければならなかった経験はないし・・・)
ま、普通に考えればIB6やFireBirdでは直ってるということでしょう
(もしかするとIB5でもパッチで修正されてるのかも)
ん〜 削除した後コミットしたの?主キーのあるテーブルなの? マシンスペックはどのくらいの物だったの? ネットワーク環境は?パラメータブロックの設定は? それらによって結果は全然変わってくると思うのだが・・・
正直なところ DBにとって千件・万件はさほど「たくさん」という量ではないということ その程度で変な動作をするとは考えにくいんだよね 30=138さん、よほど奇特な使い方をしたのではと思ったりする
×30=138さん ○130=138さん
>137 経験が浅いので 日本語が文字化けしないMarathonが便利だなぁと思っただけで。 IBPhonix のページから、 MiTeC InterBase Query をダウンロードしようとしたんですが リンクが切れているみたい。 ダウンロード先わかりますか?
ところでFirebird には、IB のような Install API はないのですか?
145 :
デフォルトの名無しさん :02/04/12 01:02
>>139 どうやらIB6とかFireBirdではそのへん改善されてるようですね。
やれやれ。まあInterBase5のあの仕様じゃぁ使い物にならないって。
ちなみにそれぞれのSQLの実行前にset transaction、実行後にcommitした
ときの話ね。主キーも外部キーも設定してない。ブロックサイズを変化
させたけどぜんぜん変わらなかった。
147 :
デフォルトの名無しさん :02/04/15 00:50
148 :
デフォルトの名無しさん :02/04/15 16:45
C# + FireBird ってできる?
>>148 事故レス
サーバーエクスプローラからは接続してデータを所得することもできるので
なにか方法はありそうなんだけど・・・
(VS.NETは遅まきながら今日触ったばかりだし気長にやりますか)
今日 Delphi 6 Pro 買いました。 フォームに、DBGrid 乗っけたアプリをさくっつと作ってみて アプリと GDS32.DLLを一緒に別のパソコンにコピーしたら問題なく動きました。 クライアントはGDS32.DLL さえあれば動きそうです。配布が楽だなぁ
152 :
デフォルトの名無しさん :02/04/16 00:31
訂正。
151の方法で動いたけれど InterBase 5.5 のマニュアルによると最小クライアントインストールは以下のとおり。
Minimum client installation
The minimum set of files necessary for client operation are:
・ %INTERBASE%\IB_LICENSE.DAT
(see “Installing software activation keys” on page 13)
・ %INTERBASE%\INTERBASE.MSG
(see “Installing GDS32.DLL and INTERBASE.MSG” on page 12)
・ %SYSTEM32%\GDS32.DLL
(see “Installing GDS32.DLL and INTERBASE.MSG”)
・ %SYSTEM32%\MSVCRT.DLL
FireBird の場合 License.dat は要らないので、必要なのは gds32 と interbase.msg と msvcrt.dll だけということだとおもう。
ソースは、
http://www.borland.com/techpubs/interbase/ の InterBase 5.5 Embedded Install Guide (0.37mb) の13ページ。
154 :
デフォルトの名無しさん :02/04/17 01:08
InterBaseもDelphiで書いて欲しいです。
>Hello . I am Japanese . build C/S Sytem in japan.
>
>Please Teach me Answer "Firebird Minimum Client Install"
>
>1.gds32.dll
>2.interbase.msg
>
>I think needs 2 files. This Think Is OK ?
>setup complete these 2files and my application copy to other pc ?
also in HOSTS file:
111.111.111.111 MyHost #Firebird server
^^^^ server's IP address
>I am Studying English now. sorry.
your English is OK :-)
>thank you for reading my-email.
>When you can find the time , would you reply my message, please?
Next time - send questions to ib-support
subscribe at
http://www.yahoogroups.com/community/ib-support Kia ora!
Helen (mail admin)
All for Open and Open for All
Firebird Open SQL Database ·
http://firebirdsql.org ·
http://users.tpg.com.au/helebor/
156 :
デフォルトの名無しさん :02/04/22 18:22
とりあえず、age 広まれー!!FireBird!!
>>156 早く.NETでも使えるようになるといいね
(今のところどうやってもうまくいかないです)
158 :
デフォルトの名無しさん :02/04/22 18:31
とりあえず、Windows系、PC-UNIX系、両方のユーザーが使いやすいDBになってほしいですよねぇー。 そうすれば、皆、仲良くFireBirdが使える(^^)
Del6 で InterBase 使ってるとこなんすけど、 TDataSet の Filter だと検索値に漢字を使うとエラーが出て、 Lookup だと検索値に漢字を使ってても通るってことあります? いや、手元でそういう現象が起きてて理由がさっぱり分からず・・・。 ちなみにエラーメッセージでは cannot transliterate character sets なんて言われます。 おしえて偉い人!
Firebird・・・なんか将来的に不安があるような気がする、いや気がするだけだけど
>159 よく知らないけど、CharacterSet は何を指定してるの?SJIS_0208? Delphi 6 と IBX で問題なく Firebird が使えるはず。(そう、信じている。) Firebirdに足りないのは機能じゃなくて、使う人たちだとおもう。使い込んで日本語情報をためていこう。
>>161 レスさんくすこ。
IB6 で SJIS_0208 使ってます。
isql で SET NAMES するのに相当する
プロパティとかメソッドがないかと思って
探してみたんすけどそれも見つからず。
エラーメッセージ自体は、isql で SET NAMES を忘れたファイルを
食わせた時に出るものと一緒なんです。今現在お手上げの状態です。
>>160 そうかぁ?むしろ商用に戻ったInterBaseの方が不安だろ。
160のFirebirdへの不安と言うのはオープンソースへの不安なのか?
164 :
デフォルトの名無しさん :02/04/23 09:38
>>160 その不安を解消していけるのがオープンソースのいいところ(^^)
そうかぁ?混沌に投げ込まれただけでは? データベースとしてのバリデーション、どうするのよ。 FireBird プロジェクトの最大の課題である バグだし / QA 作業をほったらかして 議論するのはちょっとずるいぞ。
166 :
デフォルトの名無しさん :02/04/23 12:44
FireBirdいい感じage
167 :
デフォルトの名無しさん :02/04/23 13:16
>>161 スレ伸ばしたいなら名無しに戻れ。
あと
> Delphi 6 と IBX で問題なく Firebird が使えるはず。(そう、信じている。)
> Firebirdに足りないのは機能じゃなくて、使う人たちだとおもう。使い込んで日本語情報をためていこう。
こういう盲目的で無根拠で両手を挙げてマンセー的な発言もやめとけ。
仕事柄その手の発言が嫌いな奴は大勢いる。漏れもな。
自己解決しますた。 接続パラメータの lc_ctype が SET NAMES 相当品でした。 結局 google で偶然に某MLの過去ログがヒットして判明。 あとからヘルプで lc_ctype をテキスト検索すると片隅に・・・。
170 :
デフォルトの名無しさん :02/04/26 20:34
superserverってアクセス制限どうすればいいの? そのままだとどこからでもアクセスできちゃいますよね?
>>170 Networkのsegment(sub network)切ってそこに閉じ込めるとか。駄目?
>>170 Linuxとかなら、ホストレベルのパケットフィルタリング。
173 :
デフォルトの名無しさん :02/04/27 10:41
無料でDBアプリを配布したい場合 BCBで開発したものを配布してオープンソースのIB6をインストールすればよいの?
174 :
デフォルトの名無しさん :02/04/27 10:44
みなさん嘘つきですね。 このスレ見てスイーブっていうのやってみたけど全然ファイルサイズは小さくなりませんでした。 だまされましたよ。
スイープではファイルサイズは小さくならない。 削除レコードの領域が再利用出来るようになるだけ。 バックアップからのリストアなら小さくなる。だが とうぜんスイープより時間がかかる。 Accessのmdbと勘違いしてないか?
176 :
デフォルトの名無しさん :02/04/27 12:11
バックアップ、リストアってどうやってするの?
>gbak -b data.gdb backup.gbk >gbak -r backup.gbk data.gdb コマンドライン使えんならIBConsole使え。
>>171-172 サンキュス。
サブネットって勝手に切っても大丈夫?
Linuxだけどパケットフィルタリングなんて大変なことしなきゃだめ?
パケットフィルタリングッテ良く分からないけど。。。
例えばゲートウェイ(えらい管理人さんが管理してる)ではポート
塞いでもらっておいて、内部からはそのポートへも
アクセスできるっていうので大丈夫なのかな?
みんなどうやってるの?
179 :
デフォルトの名無しさん :02/04/27 18:31
>>178 今時のUNIX系OSなら/etc/hosts.allow,/etc/hosts.denyファイルに
port number: network address(ゾーン又はホスト単位)を記述して
接続の許可、拒否を行えます。調べるならキーワードはTCP_Wrapperなど。
物理的にネットワーク・セグメントを切る場合、自分自身が組織全体の
管理を行っているなら勝手にやって構わないでしょう。
自分に構成を変える権利が無い or 他に管理するメンバーがいる場合は
変更したい理由を添えて協力を仰ぐのが筋じゃないでしょうか。
絶対に外部へ漏れてほしくない場合は、グローバルなネットワークから
そのゾーンだけ物理的に切り離してしまう解もあり。
180 :
デフォルトの名無しさん :02/04/27 18:42
すいません超初心者です。
InterBaseっていう独自の優越感にお邪魔します。
InterBaseって、sybaseみたいなもんだよね、ところで普通は、インターネットとは一緒にしないと思います。
>>1
ばかこくでねえ。パケットフィルタリングとTCPラッパは全くの別ものじゃ。
>>179 Linuxならipchains、iptablesでGoogleしてみよ。
>>178
182 :
デフォルトの名無しさん :02/04/27 19:39
>>180 その通りだ。インターチェンジとホームベースを一緒にしてはいけない。
だが、話題は既にFirebirdに移っているため、そんなことはどうでもいいのだ。
>>181 あー!なんでばらしちゃうんだよ 人の楽しみを(略
>>120 まだココ来てる?
XTG ODBC 1.0.0 beta 15 + Access97 SR-2
Interbase6.0.1 , Firebird1.0 双方とも接続できたんだけど
その使えなかったというAccessのversion教えてほしいのだが・・・
InterBaseとFirebirdどっちを使えばいいと思う?
Fireには日本語版がある
Win95時代の古いPCからだとFirebirdへの接続するのにえらく時間が掛かるけど (一旦接続できてしまえば、データのやり取りは支障ない) 誰か対策知ってる?
ネットワークのホストを探すのに時間かかってない? ネットワーク関連のドライバをチェックしてみるとか HOSTSファイルにサーバーのIPアドレスを記述してみるとか。
191 :
デフォルトの名無しさん :02/05/13 16:39
192 :
デフォルトの名無しさん :02/05/13 19:58
オペンソースになった時点でそのソースはもう大丈夫。 だからFirebirdは大丈夫。 ただし今後InterbaseとFirebirdは互換性を失なっていく 可能性は大きい。 って事でOK?
ボーランドが販売しているInterBase6.xはソースコード非公開の有償版ですけど。
>>191
JDBC2.0対応のカーソル対応のドライバってあるの?
195 :
デフォルトの名無しさん :02/05/14 10:17
JAVA方面はよう知らんのだけど、SourceForgeにアップされているFirebirdSQL-1.0_beta_1.zipっつーのはダメなの?
196 :
デフォルトの名無しさん :02/05/14 13:23
>>195 Thanx
InterClientってだいぶバージョンあがってたんだね
Firebirdなんだけど、FreeBSDで使ってる人います? Portsから入れようとすると、途中でこけるんですが。
>198 新しいバージョンになっていたから 大丈夫かな〜っとおもったけど、やっぱりだめでした。 こんな感じです。 ------- source/interbase/bin/gbak -c misc/metadata.gbak /usr/ports/databases/firebird/work/refDatabases/jrd/metadata.gdb can't format message 12:256 -- message system code -4 operating system directive semget failed can't format message 12:256 -- message system code -4 No such file or directory can't format message 12:256 -- message system code -4 can't format message 12:33 -- message system code -4 can't format message 12:169 -- message system code -4 can't format message 12:83 -- message system code -4 *** Error code 1 Stop in /usr/ports/databases/firebird/work/firebird-1.0.0.796. *** Error code 1 Stop in /usr/ports/databases/firebird. -------- FreeBSD4.5です。
200 :
デフォルトの名無しさん :02/05/15 20:24
>>192 >>193 ありがとうございます。
既にオープンソース化されている
InterBase6.01 は、今後InterBase6.x以降が
有償のままオープンにならなくても無償で
使用でき、FireBird も無償で使用できる上
独自に拡張できるわけですね。
201 :
デフォルトの名無しさん :02/05/15 21:23
Interbase/FirebirdってODBC使えますか? 特にBLOBなんかが心配なんですけど。
ODBCぐらい使えるだろ
>>201 わしはこれだけ確認した。
XTG ODBC 1.0.0 beta 15
Access97 SR-2
Access2002 SP1
BCB5 + BDE5.2
あなたがどこまで品質要求するのかわからんから、あとは調べてちょ
>199のやつ、自己解決。 どうやらPostgresが共有メモリを食いつぶしていたのが 原因らしいです。
205 :
デフォルトの名無しさん :02/05/18 15:55
>>203 感謝です。
単純なテーブルしか使っていないし
selectさえできれば良いので大丈夫そうですね。
後は試してみます。
>185 120です。再度チャレンジしたところ、 XTG1.0 Beta15 + Access2000でつながりました。日本語もOKでした。 ODBCの設定をファイルデータソースにするか、 コンピュータデータソースにするかで、ファイルにすると接続できないようです。 コンピュータデータソースで指定したら上手く行きました。 情報、サンクス。
207 :
デフォルトの名無しさん :02/05/20 23:06
FireBirdってデータベース(ファイル)越しのクエリ使えないの? Accessの"IN"みたいな構文ってないのかなぁ・・・
debian sid に firebirdが入りました。
209 :
デフォルトの名無しさん :02/05/22 21:24
IB6 オプソ版+IBX on Del6を使ってるんですが write,nowait,concurrency,protected,lock_write=MYTABLE というパラメータで2つのトランザクションを開始しても衝突してくれません。 これは isql 上での SET TRANSACTION READ WRITE NO WAIT SNAPSHOT RESERVING MYTABLE FOR PROTECTED WRITE とは違うのでしょうか? isql 上ではこのようなトランザクションは衝突してくれるので それを期待しているのですが・・・。
解決しました。パラメータの指定順序の問題でした。以下が正解なんですね。 write,concurrency,nowait,lock_write=MYTABLE,protected マニュアルに記載されているものとは何故か順序が逆になっているようです。 こんなことで8時間も使ってしまった・・・。
211 :
デフォルトの名無しさん :02/05/28 12:25
保全age ところでFirebird1.0だとデータベースパスに日本語通らないが IBもそうなのか? ソース見てないんだがSJIS->EUCのせい?
>>211 フィールド作成するときやconnectするときにキャラクタセット指定してんのか?
>212 >211が言ってるのは .gdb ファイルのパスの事だと思われ。
>>213 そうだす。
Marathonかなり使えるんだがよく例外発生するな。
日本語版ホスィ・・・
215 :
デフォルトの名無しさん :02/05/28 20:52
216 :
デフォルトの名無しさん :02/06/03 15:22
>>211 IB5.6ですけどGDBファイルのパスに日本語通ってます
>>216 そーなんですか。アリガトン。
予算があればIB使えるんだけど・・・
FB修正してバックポートする気力も無いし(鬱
>>221 Open Source Interbase にはバイナリ版があるんですけど…
>
>>222 ますますわからん。
Borlandが公開しているソースそのままではビルドできんというのは事実だが、そのこと言っとるのか?
IB/FBってデータベース(ファイル)単位のセキュリティってないのれすか。 Accessのパスワードみたいなやつ。 せっかくDBもアプリも配布しやすいRDBMSなのに・・・
ん?なんか変なこと書いた?
うええん、みんなしていぢめるう。
いや、俺も224と一緒で、 ファイル単位でのセキュリティって思いつかないんだけど(@InterBase)。 サーバー単位でユーザーアカウント作ってGRANT/REVOKEしてってのは分かるけどさ。 そのユーザーアカウントをDBファイルの方に入れる方法ってあるの?
>>231 そうなのよ。
運用鯖でバリバリにユーザー管理してもファイルコピーして
インストール状態のIB/FBに持っていくとsysdbaでデータ見られてしまう罠。
機能的にはあってもよさそうなんだけど、どっかのベンダとかが出してないのかな〜
せっかくのオプソなんで時間&スキルあればそーいうExtensionとか
実装させてみたいと思うんだけど・・・
つかFireBirdってなんでコンパイラVCなのよ?
>>232 元のInterBaseがVCで書かれていたから。
InterBaseがBorlandの製品になる前にMS-Cで書かれてたからかな?
FireBirdもVCに依存する部分をこれから無くしていくんじゃなかったけ。
>>224 >>231 >>232 Access みたいにローカルで運用するもんじゃないから。
> インストール状態のIB/FBに持っていくとsysdbaでデータ見られてしまう罠。
見られたくないDBを何で持っていく?
>>234 他のRDBMSだと程度の権限がないとよそへデータを持っていったり(エクスポートしたりとか)
することができないけど、IBだとファイルコピーされたら終わってしまうというのがなんとも・・・
>見られたくないDBを何で持っていく?
今考えてるのは組み込み用途みたいなローカル限定の環境で使えないかなというところで考えとります。
せっかくファイルベースのRDBなんだからファイル単位のセキュリティがほしいなということで。
「用途/目的が違うから」の一言で済ませてしまうにはおしいな・・・
何がしたいのかさっぱりだが、SYSDBA削除しとくかパスワード変えとけば いいって話じゃないのか?
>>235 >IBだとファイルコピーされたら終わってしまうというのがなんとも・・・
これは運用でカバーするしかないね。
Win2KやUnix系ならOSの機能使って対処すればいいと思うよ。
パーミッション設定して他人から見えないようにするとかして。
>>236 SYSDBA 削除したらまずいだろ。管理できなくなるよ。たぶん。
パスワード変えようが意味ない。
ユーザ情報はサーバにある isc4.gdb で管理しているみたいだからね。
231の言うようにDBファイル自身にユーザ情報が入れれれば確かに
いいような気がする。ただそうなると、管理者でさえそのDBにアクセス
できなくなってしまうから、まずいのかな?
(一応管理者はすべての権限があるという前提で言うと)
>>237 クライアントの接続文字列にDBへのパスが含まれるから
そこから所在がバレそうだね。
なんなんだろう?
みんなが何を心配しているのか見当がつかない。
>>235 なんで見られるとマズイ?
データが外に漏洩したのとは違うし、見られてまずいことなど何もないと思うけど。
>>238 所在がばれると何か問題なの?
所在がばれた程度でデータ盗まれるような管理してることの方が余程問題でしょ?
>>238 DBパスはばれても、要はGDBファイルはコピーできないようにしておけば問題ないよね?
>>239 >なんで見られるとマズイ?
何らかのミスがあって、GDB ファイルが外部に持ち出されてしまいました。
ってときに、GDB ファイル単位にパスワードとか設定できるのであれば、
例え外に持ち出されてもパスワードまで漏れなければ中身を見られることは
まずないよね。
241 :
デフォルトの名無しさん :02/06/21 01:42
ええい、こうなれば暗号化BLOBフィルタ自作しる。
>>240 ファイルが読めりゃ、パスワードなんか分かんなくたって、いくらでもデータを読む方法あるでしょ。
243 :
デフォルトの名無しさん :02/06/21 12:23
>>242 データ自体を暗号化すればいいんでは。
パスワードを暗号キーとするとか。
>>243 某のところにもそんなの書いてあったな。
プロトコル/データを暗号化してしまえばいいんだろうが
どっかにミドルウェアないかな(w
247 :
デフォルトの名無しさん :02/06/28 23:40
Firebirdの本って出ないのかな? WEB+DBの加藤さんの記事だけだよね。
オープンソースになったんだから もう少し露出があってもいいんだがなあ>firebird
誰かユーザーグループかメーリングリスト立ち上げないかな。
結局日本語だけのコミュニティで出来る事って限られてるって 事なんでしょう。
せっかくいいもんがオープンソースになったんだから もうちょっと知名度が出ても良いと思うんだけどね。 牽引者がいないのがつらいところだわなあ
252 :
デフォルトの名無しさん :02/07/08 19:05
そういうことはageで言え!
>>251 なんと
日系オープンの7・8合併号に
オープンソースDBMSとしてMySQLやPostgreSQLと一緒に
出てる
内容はただの照会程度
254 :
デフォルトの名無しさん :02/07/15 18:01
日系ソフトウェアで、BDEの開発停止、今後はInterBaseを推奨、みたいな記事をちらっと見たんですが、はっきり言って、del使いにとって、この影響はどのくらいなんでしょうか。 また、InterBaseってのはどのくらい良い/悪いDBMSなんでしょうか。 私的には、資料が皆無に等しいというのが欠点に見えるのですが。
>>256 一般的なSQLの知識があればあとはヘルプを見ながらなんとかなるよ
Delphiの場合
IBTableは使わないほうが無難だけど(俺は代わりにIBDataSetを使ってる)
258 :
デフォルトの名無しさん :02/07/15 21:48
んvbんv
>>257 禿同。IBTableはかなり危険だ。
>>256 BDEはあまり好きじゃないんで最近はdbExpressとADOばっか使ってるが
ADOあればBDEいらないんじゃないかな〜と思う。
なんだかんだいってもADO楽チンだし。
資料は付属のマニュアルでほとんど間に合ってる。
(いい意味で)低機能RDBMSなんであまり悩むことがないかな。
ところでIBのOLE DBドライバ(っていうのか?)って
http://www.oledb.net/ 以外にない?
商用利用できるのがほしいんだが・・・
BorlandはOLE DBドライバ配布しる!
260 :
デフォルトの名無しさん :02/07/16 15:48
>>259 > 禿同。IBTableはかなり危険だ。
これはどうしてでしょう?教えてたもれ
IBTableをOpenするのは SELECT * FROM テーブル名 と同じだから、無駄なデータがイパーイ流れたりする ましてや、Paradoxのテーブルと同じようなつもりで扱うと 凄まじい量の問い合わせが発生したりする (初めて使ったとき計算項目で他のテーブルを参照してエライ目にあった) ま、おいらがヘタレなだけかも知れんけど
IBTable ってリークしてない?
>>260 参照オンリーだとあんまり問題でないが、更新したりするとFetchしなくなったりすることが多い。
DataControlとかと一緒に使うと挙動不審なところがある。
(入力値が反映されなかったりとか)
全体的にTIB〜は他のTDataSetを継承したクラスと実装が微妙に違うっぽい。
(ソース追ったわけではないが)
FilterとIndexはちゃんと動くんでそっちを多用する場合は(フィルタ&ソートとか)
TIBTableのほうが使い勝手がいい。
あとは
>>261 のとおりパフォーマンスの面がけっこう大きい。
TIBTableが危険だっていうのMLのログで見たような・・・
ターボチャージは、極度な時にも最大限の力を発揮したい人 に頼りになる栄養補助食品です。締め切りが迫っている、 今晩中にあるいは翌朝までにやり遂げなければならない時に 頼りになるハーブ食品 www6.ocn.ne.jp/~beauty-s/index.htm
265 :
デフォルトの名無しさん :02/07/16 21:08
サーバが変わると順番も変わっちまうからな 倉庫落ち阻止上げ
危険というか、SQL 使う意味が無くなることが一番の原因では?
>>261 で指摘されているように、基本的にサーバのデータをローカルに
コピーすることになるから。
実際には(SQL サーバーを参照する)TTable にしろ TIBTable にしろ
いくつかの負荷減少コードが実装されているが、程度の問題に過ぎない。
>>266 >危険というか、SQL 使う意味が無くなることが一番の原因では?
SQLを使わなくてもいいようにラップしてくれるのがTDataSetなんですが・・・
268 :
デフォルトの名無しさん :02/07/28 16:32
メーリングリスト作ってよ誰か。 あとさぁ、だれかソースハックしてる人いる? 手を入れやすい?
リオスのメーリングリストならあるよ。
InterBase4をLinux/FreeBSDにポートした人たちもいる。
http://iblinux.rios.co.jp/ 今のFirebirdのソースを追っかけてるかどうかわからないけど、
アドバイスはもらえるんじゃない?
>>268 ちろっとしかソース見てないが
Win版は環境つくるのがめんどかったような・・・
VC++とBCC使うんだっけ?
271 :
デフォルトの名無しさん :02/07/29 17:07
FireBird最新版(1.0)に上げたら、今まで使ってたIB Consorlが使えなくなってしまいました。 Windows環境から、IBサーバをGUIな環境で見てらっしゃる方はいらっしゃいますか?? ODBC + MS Accsess ODBC + WinSQL と試してみましたが、IBコンソールほど、使い勝手がよいとも言えず、 模索中です。 # ODBC接続だったらDB毎にODBCで接続してやらないといけなくて・・・
272 :
デフォルトの名無しさん :02/07/30 05:31
OpenOffice/StarSuiteは使えんのかな。
>>271 >FireBird最新版(1.0)に上げたら、今まで使ってたIB Consorlが使えなくなってしまいました。
普通に使えてますけど・・・OSはWindows 2000とXP
修正、XPは未確認でした
>>274 ログインしようとすると
Cannot attach to services manager
Services functionality will be supported in a later version of the product
と表示されてしまうんです。
ちなみに、Win2000です。
コンソールは、1.0.0.327Jです。
どこか設定ミスでしょうか。
>>276 自分のバージョンは1.0.1.335JP Fix01(多分Del6についてたもの)です
バージョンアップで解決できそうですね
ありがとうございます! ちなみに、Del6は、Professional以降ですよね?? Personalしか持っていないので、やっぱ、お金かけないとダメですね。 使いやすさを求めるなら。(T_T)
1.0.1.335JP Fix01で試してみました。 しかし、やはり同じエラーが発生しました。 ちなみに、Borlandからダウンロードできました。( 278は無視してください(w ) # まだ、何かあるのかなぁー
自己解決してしまいました。 Clasicサーバーじゃ、使えないんですね。。。スマソ
今日はじめてIBAccessを使ってみた・・・感動しました。 IBConsoleよりも使い勝手いいかも。
282 :
デフォルトの名無しさん :02/08/02 16:19
どういうところが使い勝手が良いと思われました??
>>273 で挙がってるけど
marathonのほうが上だと思うんだが・・・
284 :
デフォルトの名無しさん :02/08/02 20:59
firebird日本語版のデフォルトのadminの名前とパスって何? SYSDBA/masterkeyでログインできないんだけど。
285 :
デフォルトの名無しさん :02/08/03 22:09
私も FireBird 日本語版使用してますが、login のデフォルトパスワードは、 'SYSDBA' 'masterkey' で login できています。
286 :
デフォルトの名無しさん :02/08/03 22:23
Linux版だとスーパーユーザーしかDBAでログオン出来ないんじゃ? 違ったっけ?(そもそもプロセス落ちてるとか。)
288 :
デフォルトの名無しさん :02/08/07 18:36
284>> アカウント管理用のDBが無いとか(^^;
289 :
デフォルトの名無しさん :02/08/11 11:49
290 :
デフォルトの名無しさん :02/08/11 16:22
291 :
デフォルトの名無しさん :02/08/21 11:20
C++Builderで開発したプログラムからInterBase6.01を利用してるんだけど、 アクセス負荷をかけると 'lock manager out of room' ってエラーが 出ちゃいます。 isc_configのV4_LOCK_MEM_SIZEを増やしてみたら改善はしたけど、 まだ現象は出る・・・。これって、何がまずいんですかね? プログラムのせい?
292 :
デフォルトの名無しさん :02/08/21 13:56
273> 283> Marathon すごい高機能ですね!感動しました! IBConsoleより、よっぽど便利な気がするのですが・・・
RedHat6.2です。
>>294 だからよー、SuperServerかって聞いてんの。
>>295 違います。SuperServerではないです。
297 :
デフォルトの名無しさん :02/08/23 08:20
FireBird Serverで、IPでのアクセス制限ってかけられましたっけ? OS(LinuxやWin2000)で、制限しないとダメでしたでしょうか? 環境:Windows2000,FireBird1.0,Apache2.0.35
間違えました。RedHat6.2じゃなく、7.2です。
ただ単に「負荷をかけたら」じゃ誰も何もわからないぞ。
具体的な内容を示せ。
V4_LOCK_MEM_SIZE 変更して、改善されたのか?
じゃ値をもっと大きくするとどうなる?
場合によってはLinuxカーネルの方もチューニングする必要あるかもしれんぞ。
http://www.ibphoenix.com/ibp_sem_sm.htm >>298 iblinuxメーリングリストでも同じこと質問してるだろ。
答えが欲しいなら、ちゃんとした情報を付けて
メーリングリストの方に出し直せ。
300get
>>300 キリバンゲット代金として一万五千円いただきます。
302 :
デフォルトの名無しさん :02/08/27 13:56
Firebird使ってみたいんですが、Delphi5からFireBirdを使うには添付のinterbase用コンポーネントで大丈夫なんですか?
あ、でも漏れはDel6だった
Del5でもOK
306 :
InterBase初めて使う :02/09/02 01:31
フルLinuxベースで、 InterBaseをDBにしてシステム組んでますが、問題にぶちあたりますた。 JDBC系(Javaサーブレットから)、とそれ以外(主にkylixアプリ)、 の二系統から同時に接続しています。 JDBC系でデータ更新すると他のJDBC系の接続ですぐ更新したデータを見れるのに JDBC以外の接続から見るとデータが更新されてなかったり(遅れて更新されたり) それ以前に、片方が接続していると、もうかたほうの系統が接続できなかったり する事もあるし、もうわけわかりません。 同じような体験してる人いますか?
サーバー側のJDBCドライバで更新がキャッシュされてるっぽく ないですか?Kylix側はdbExp.だからGDS直叩きですよね?
そうなんです! やっぱりキャッシュされてるのかな? Javaから直にアクセスする方法はないものか・・・ そもそも、JDBCと、それ以外の接続の混在は想定されてないとか・・・ まさかそんな事はないよね。 (日本語の)Web、ML、ニュースグループ、書籍、ありとあらゆる情報調べたけど、 参考になりそうな情報もなし・・・
>>306 JDBCやdbExpはわからんけど、両者でデフォルトの排他レベルが違ってるとか。
310 :
デフォルトの名無しさん :02/09/03 12:33
>>309 確認してみました。デフォルトのままで、同じレベル
(commit_readed?だっけ?)になってました。レベル自体も、問題ないみたいだし・・・
>>310 せっかく情報いただいたけど、このcacheに相当する設定がいったいどこにあるやら
いろいろ探したけどわかりませんでした・・・スマソ
別な方法考えるしかなさそう。Java(servlet)からInterBaseにアクセスするには、
他に方法はないのだろうか。
ボー○ンドは、高いサポート料を別に払わないとサポート受けられないし・・・(悲
>>311 オープンソースってのはそういうものさ。
>>306 より詳しく環境を提示してくれない?
>フルLinuxベースで、
>InterBaseをDBにしてシステム組んでますが、問題にぶちあたりますた。
>JDBC系(Javaサーブレットから)、とそれ以外(主にkylixアプリ)、
>の二系統から同時に接続しています。
・Linux はディストリビューション、バージョンは?
・InterBase のバージョンは? Classic or Super
・InterClient のバージョンは?
・JDK のバージョンは?
・サーブレットコンテナは?
>JDBC系でデータ更新すると他のJDBC系の接続ですぐ更新したデータを見れるのに >JDBC以外の接続から見るとデータが更新されてなかったり(遅れて更新されたり) >それ以前に、片方が接続していると、もうかたほうの系統が接続できなかったり サーブレットで JDBC 使ってデータ更新とかしてるってことだと思うけど、 どうやってるの?コネクションプールしてるとか? とりあえず、オレもサーブレットで InterBase/Firebird 使ってるけど、オレの場合は コネクションプールとかはしてなくて、HTTP リクエストごとに、 DB接続→データ更新→DB接続切断 のような単純な処理してるけど、DB接続切断後に IBConsole とか使って確認したりしてるけど、 更新されてないようなことは今までないけどね。(当然のことだと思うが。) どの時点で見てみて、更新されていない状態になるってこと? トランザクションコミット後?DB切断後? まさかコミット前ってことじゃないよね? ちなみに当方の環境例) ・Win/Linux + Firebird 1.0SS + Tomcat 3.x/4.0.x + InterClient 2.01 + JDK 1.3.x/1.4.x ・Win + InterBase 5.6 + InterClient 1.6 + Tomcat 3.x (4.0.x) + JDK 1.3.x
>>311 >せっかく情報いただいたけど、このcacheに相当する設定がいったいどこにあるやら
>いろいろ探したけどわかりませんでした・・・スマソ
ちらっと見たけど
>>310 のって JDBC と無関係なんでは?
Connection 時に "suggestedCachePages" っていうキャッシュ関係のパラメータがあるみたいだけど、
何か関係があるのか?? オレは使ってことないし、よくわからないけど。
(デフォルトは 0 みたいだからキャッシュしないと思うけど。)
>ボー○ンドは、高いサポート料を別に払わないとサポート受けられないし・・・(悲
そうだね。それに金払っても問題解決するとも限らないし。
言い忘れたけど、 >JDBC系(Javaサーブレットから)、とそれ以外(主にkylixアプリ)、 >の二系統から同時に接続しています。 ってことで、サーブレットで更新したデータが kylix アプリの方で 更新前のものが読み込めちゃうってことなんだろうけど、 何かキャッシュの問題じゃなくてトランザクションの問題のような 気がしてきた。 >確認してみました。デフォルトのままで、同じレベル >(commit_readed?だっけ?)になってました。レベル自体も、問題ないみたいだし・・・ デフォルトの排他レベルは SNAPSHOT なんじゃないの? この場合は、サーブレット側のデータ更新前に、Kylix の方でトランザクション開始して、 サーブレット側データ更新後に、Kylix の方でそのままのトランザクションで 読み込もうとしても更新前のデータが読み込めるから、それが原因のような気がしてきた。 本当に READ COMMITTED なのかどうか確認した方がいいと思う。 もう一つの確認方法として、データ更新前に kylix アプリで内容を確認しておいて、アプリ終了する。 次にサーブレット側でデータ更新してから、再度 kylix アプリを起動して内容を確認してみる。 更新された内容が読み取れるのであれば、kylix 側アプリのトランザクションの設定が問題の 可能性が高いと思う。
... ぜんぜん「InterBaseを使いこな」してないじゃん。
DelphiでIB使うとき(kylixもたぶん一緒) トランザクションが常に存在してるような感じになるから Web側で更新された後にKylix側のトランザクション張りなおす ような感じにしないとだめなような気が。 使ったこと無いけどEventAlert使ってみるとか
>>318 たぶんそれが問題だろうね。
でもわざわざイベントアラータ使わないで、明示的にトランザクションすれば間違いない、はず。
>>306 下のようなコードにした方がいいってこと。
------------------------
■ データ読み出しメソッド
------------------------
(トランザクション開始)
try
select ... from ...
(コミット)
except
(ロールバック);
end;
------------------------
いろいろありがとうございます。レスが遅れてすいません。
>>313 DB:Redhat7.2 Linux + InterBase6.0サーバー SS
servlet(WEB):RedHat7.2 Linux + JRUN4.0 + InterClient2.02
です。InterBaseの動作環境はRH7.0なんですよね。でも、7.0にインストールしたら全然動かない・・・
>>314 >>更新されてないようなことは今までないけどね。(当然のことだと思うが。)
ちょっと説明不足でしたが、こちらも、JDBCとIBConsoleだけの時は大丈夫なんです。
>>316 >>デフォルトの排他レベルは SNAPSHOT なんじゃないの?
スンマセン、確認したらその通りでした。間違ってました。
そして、レスを参考に、考えなおしてみました。今まで、InterClientばかり問題視してたのですが、
みなさんおっしゃる通り、kylixの接続によりJDBCが排他される、と考えると、
今までの現象が全部納得いきました。
そして、それぞれのkylixの接続の状態で、JDBCの書き込むがうまくいくかどうか調べたところ、 ・kylixがconnectionだけ --> JDBC書き込みOK ・connection+select(トランザクションにしない) --> NG ・connection+select(トランザクションとして、commitまで行う) --> 期待したのですが、NG ・connection+select+切断後 --> OK ・connection+select+切断後+またconnectionだけ --> なぜかNG とにかく、kylixが一度でもアクセスしちゃうと、だめみたいです。 その間は、JDBCから書き込みしてもIBConsoleから見えないし (しかしJDBCエクスプローラで確認すると見える InterServerのキャッシュにある?) そして、kylixを切断すると、すぐにIBConsoleから見えるようになりました。 いちいちselectするたびに切断というのも・・・トロくなるし というわけで、もう時間もないのでちょっとDBの扱いかたを変えて行くことにしました。 (JDBC系とkylix系のデータを別ファイルにする。さすがに別ファイルだと排他されませんでした。 二つのファイルの整合は、別な処理で行ってあわせる) いろいろありがとうございました。 あとで時間があったら、ちゃんと解決したい・・・
322 :
デフォルトの名無しさん :02/09/09 12:45
↑
324 :
デフォルトの名無しさん :02/10/03 13:49
FireBird V1.5 Alpha1 ダウンロード開始age。 プロシージャ、トリガ内の言語が拡張されていてなかなか良さげ。 CASE, NVL, NULLIFとかあるぞ。 ところで重いストアドを実行中は他のクライアントからの軽いクエリとか でも急に重くなるんだよな。なんかいい案ない?
isqlにヒストリ機能が付きました。ここだけが不満だったの。
リアルタイム処理なんで夜間バッチはちょっとね。。。 InterBase/FireBirdは現状SMPに対応してないんだっけ? 対応してるならSMPのCPUパワーにものを言わせて解決しても良いんだけど。 SMP未対応ならHyperThreadのXeon, P4でもうまく動かないのかしらん。
329 :
デフォルトの名無しさん :02/10/24 15:07
サーバの現日付を得たいのだが どう問い合わせればいいのでしょう? oracleでは select sysdate from dual; とかで大丈夫なんだけど・・・ あと、tableの一覧修得方法などをご存じの方 どうかご教授くだされ
330 :
デフォルトの名無しさん :02/10/24 16:07
>>329 SELECT CURRENT_DATE FROM NANIKA_TABLE;
SELECT CURRENT_TIME FROM NANIKA_TABLE;
SELECT CURRENT_TIMESTAMP FROM NANIKA_TABLE;
これで取得できる。
テーブルの一覧は qli を使えば show fields; でいけるはず。
isqlとかでやる方法は知らない。
>>329 SELECT rdb$relation_name AS tablename
FROM rdb$relations
WHERE rdb$view_source IS NULL
AND rdb$system_flag = 0
ORDER BY rdb$relation_name; ← この行は必ずしも要らない
もっとシンプルな方法があるかもしれないが、漏れはこれ使ってる。
おお! 出来ました、出来ました! ふと気になったのですが、 SELECT CURRENT_TIMESTAMP FROM Nanika_Table; としたとき、ものすごい件数で結果が表示されますが これを一件とかにできないのかなー? SELECT CURRENT_TIMESTAMP FROM NANIKA_TABLE WHERE ROWNUM = 1; としても、エラーが出るし むぅ・・・ >331さんのテーブル一覧の方法 ものすごく勉強になりました。 本当にありがとうございました
>>332 >SELECT CURRENT_TIMESTAMP FROM Nanika_Table;
>としたとき、ものすごい件数で結果が表示されますが
>これを一件とかにできないのかなー?
うーん。煽りでもなんでもなくて、一度SQLの基礎を学習したほうがよいのでは?
Oracleマスターの試験を受けてみるとか(IBと直接関係ないが、SQLやDBの基礎
構造を学習する意味で有益)、IBのマニュアルを死ぬほど読み倒してみるとか、
このSQL文では テーブル "Nanika_Table"のレコード数だけ結果が返ってくる
ことはわかりますよね。
ならば、1行しか存在しないダミーテーブルを作ってそのテーブルから
同じように取得するとか、あるいは
SELECT MAX(CURRENT_TIMESTAMP) AS ctimestamp
FROM Nanika_Table;
のように必ず1行しか値を返さない関数を使用するとかの方法があると思います。
あ、ご指摘ありがとうございます いわれてみるとそうですね。 動作が NANIKA_TABLE = DUAL と考えてしまいました もう一度、自分のスキルを見直してみます それはそうと、InterBaseでもoracleのrownumに 変わるものってありますか?
>>334 >それはそうと、InterBaseでもoracleのrownumに
>変わるものってありますか?
残念ながらぬぁいです。
ここで終わってしまうと身も蓋もないので、
ヒントだけ。簡単に説明できないので、あとは334氏のスキルの向上に期待します。
1。 InteractiveSQLなんかでGeneratorを作成
CREATE GENERATOR gen_rownum;
2. 作成されたGeneratorを使用して目的のテーブルに付加する。
SELECT gen_id(gen_rownum, 1) AS rownum, Nanika_Table.*
FROM Nanika_Table;
これでいけるはず。実際にはORDER BYなんかが絡んでくると
簡単には逝かないかもしれない(ちょいとテストで組んでみたんで
複雑なSQLではうまくいくかどうか未検証)上に、generatorのリセットが必要。
連続して実行するとgeneratorが加算されてしまう。
その場合は SET GENERATORを使用すればよろし。
詳しくはIBマニュアル「埋め込みSQLガイド」p96〜97および「データ定義ガイド」
p179〜 あたり見てみ。
ヒントといいつつ結局ほとんど記述しちまったよ…。
スレの流れと関係ないが
>>3 >Twise Lab
>
ttp://www.twise.co.jp/index.html >オープンソース版の日本語対応を行っている
たった今、たまたまここに逝ったんだけど、
「※FireBird関連のソフトは、ライセンス関連が明確ではないため、
配布を中止いたしました。」
と出てますた。
FBでアプリ配布してるんで、非常に気になるんだけど、なんかあったんだろか?
ibphoenixあたりに行っても、よくわからんかったし。
詳細またはライセンス体系の情報をもってる人誰かいたらお願い。
>335 なるほど、こういう方法があったなんて・・・ とても驚きです InterBaseのマニュアルは持っていないので Borlandからの購入を考えようと思っています
よいインターネットですね。
JAVA方面はよう知らんのだけど、SourceForgeにアップされているFirebirdSQL-1.0_beta_1.zipっつーのはダメなの?
>>336 うちもFB使ったアプリを配布してるけど、このライセンスで問題ないんじゃない?
FB自体に手を入れた場合についてはごちゃごちゃ書いてあるみたいだけど
単体を配布するだけなら特に何もないはず。
その点、あそこで配布してた日本語版は手を入れた代物だからじゃないかと。
>>340 何が知りたいんだかさっぱり分からんからレスのしようがないぞ。
>338さん マニュアル、早速ダウンロードして読んでみます 教えてくださって本当にありがとうございました。
IBTable ってリークしてない?
Prepare, UnPrepareの対は正しく対応しているか、Finally ブロックで確実に行われているかチェック。
345 :
デフォルトの名無しさん :02/10/30 08:54
FireBird で SQL を勉強しはじめた者です。 プライマリキーを Double Precision 型にしたのですが、 TIBQuery で INSERT 文を発行するのにパラメータを使いたいのですが、 型の対応がわかりません・・・ TFieldType 型の何に相当するのでしょうか? よろしくお願いします。
書き忘れてしまいました 使っているのは FireBird 1.0 と Delphi7 です。
>>345 ここで質問するまでもなく、
Delphiの設計画面で TIBDatabaseで接続して、TIBQueryにSQL文を
指定し、項目エディタで全フィールドを追加して、調べたいフィールド
のタイプを見ればわかることではないのかと思われ。
いや多分この方法が思いつかなかったからこそ質問したことは
想像できないことはないのですが、今後不明な項目タイプがあったとき
この方法で調査できます。
やり方がわからんかったらDelのマニュアルを見るか、聞いてください。
ML入ったほうがいいかもしれないよ。
ちなみに、TFloatFieldです(当方FB1.0 + Del5).
348 :
デフォルトの名無しさん :02/10/30 10:51
InterBaseって まだ あったんだ・・・。 今は、どの会社が サポートしてるんだ?(w
おおっ、そういえばこんなのがありましたっけ! はるか昔に Paradox をいじってた程度なので全然思いつきませんでした。 一歩前進できました。火の鳥さんどうもありがとうございます。
もう1こ質問です。こんなテーブルを1つ作りました。 - DoublePrecision (Primary Key) - Integer - Char(64) - Char(256) 以下のように追加を繰り返すと、たかだか13万レコードを追加するのに10分もかかるのですが IBTransaction1.StartTransaction; try n := 0; while not f.Eof do begin s := ReadLn(f); i := Pos(#9, s); if (0 < i) then begin IBQuery1.Params[0].AsFloat := n; IBQuery1.Params[1].AsInteger := i-1; IBQuery1.Params[2].AsString := Copy(s, 1, i-1); IBQuery1.Params[3].AsString := Copy(s, i+1, Length(s)); IBQuery1.ExecSQL; Inc(n); ProgressBar.StepIt; if ((n mod 10) = 0) then Application.ProcessMessages; end; end; IBTransaction1.Commit; 定石みたいなものがあるのでしょうか? ProgressBar の動きを見ていると、後半になると遅くなってゆくみたいです。定期的に Commit しないとだめとか? TIBSQL の方が速いらしいですが、使い方がイマイチわかりません・・・
ML って InterBase for Linux & FreeBSD ユーザーズメーリングリストですか? Delphi-ML なら入っていますが、Interbase の話題は見たことがないので こっちは質問しづらい感じがします。
>>350 FBでこのような処理をしたことがないので、あくまでも推測でしかないのですが、
Oracleで行った経験から言うと、
インデックスが効いている場合、挿入が行われる度にインデックスが再作成される
ために、遅くなるのでは内科と思われ。
ためしに ALTER INDEX (インデックス名) INACTIVE; で処理前にインデックスを
無効にして、Commitしたあとに ALTER INDEX (インデックス名) ACTIVE; で
元に戻してみてはどうでしょう。
理想的にはwhileで1行ずつ回しながら挿入するのではなく、
INSERT INTO (tablename)
SELECT ... FROM ...;
のように一気に挿入するのがベストだけど、これはこの構文を見る限り
難しいかもしれない(漏れだったら何が何でもwhileを避けて、関数を駆使して
SELECT文で一気に挿入する方に持っていこうとします)。
ちょっとwhile使わない方法考えてみるから時間ください(←多忙のため、
もしレスしなくても怒らないでください)。
>>351 そうです。
ごめん。テーブルからテーブルに追加するのではないのですね。
やっぱりこのコードから推測すると、whileで回すしかないみたいです。
>>348 InterBaseはまだ棒ランドがやっとります。
最近はInterBaseから派生したFireBirdがオープンソースで出てる。
このあたりの経緯はスレを最初から読んでみて。
しかし、最近急に質問が多くなってきたような気が。
定期的なコミットは意味がありませんでした TIBSQL を使ってみましたが逆に遅くなりました >SELECT ... FROM ...; テンポラリテーブルを作ってバッファみたいに使ってSELECTかける という話かと思いました。 今は教えていただいた ALTER INDEX をやってみようとしています。 テーブルは Marathon で作っているのですが PK_〜 とか RDB$〜 RDB$INDICES とかどれがどれだか・・・ エラーで弾かれまくりです^^;
355 :
デフォルトの名無しさん :02/10/30 12:19
357 :
デフォルトの名無しさん :02/10/30 17:07
paradoxの質問してもよかですか?
358 :
デフォルトの名無しさん :02/10/30 20:29
>>345 ちょっとテストしてみました。
PC:Dell Optiplex GX200 (PenIII 933MHz/128MB)
OS:Windows NT Workstation(SP6a)
Delphi 5.0 Pro + Update1
DB:FireBird 1.0 (Twise Lab.バージョン) ※ローカル環境
データ:郵便番号データファイル(行数:12万件ちょっと)のうち、
・旧郵便番号 (VARCHAR)
・新郵便番号 (VARCHAR)
・都道府県名 (VARCHAR)
・市区町村名 (VARCHAR)
・町域名 (VARCHAR)
をInsertしました。(コードはほぼ同じです。)
※主キー、インデックスは無い状態です。
結果、約3分程度で処理が完了しました。
やはり、インデックスを解除→Insert→再度インデックス設定 が効果ありそうです。
こんばんは345です。 わざわざテストまでしていただいて、感謝です。 こちらでもやってみました。結局 Primary Key は ALTER INDEX できないと叱られたので、 インデックスを削ったところ 50 秒程速くなりました。 しかし速度は頭打ちでした。この点は既にあきらめモードです。 実は K6-2 450 / 756MB・・・差はこれなのかなぁ。 データセット外してみたりしたけどやっぱり変わりませんでした。 また質問があります。 WideString を使いたいのですが、Char_Setに UNICODE_F55 を選ぶだけでよいのでしょうか?
360 :
デフォルトの名無しさん :02/10/31 00:50
>>359 テーブル削除してから空のテーブル作って、追加後にインデックス
付ければ良いのでは? 多分、テーブルをemptyにするよりも早いかと。
BDE3.xでは大丈夫だったのに、5.x以降はインデックスがあると、
10万件を超えるようなデータを追加したら落ちましたので、今はこの
方法を使っています(Paradoxですが)
使ってみたけど、なんかストアドプロシージャの書き方が 独特なのね... フィールド名も日本語使いたい...
なんかCreateDatabaseする時とOpenする時とでパラメータの記述方法が違うみたいですけど USER "SYSDBA" PASSWORD "masterkey" user_name=SYSDBA password=masterkey こういう物なんでしょうか?
InterBaseってOracleのrowidみたいなのはないの?
>>365 俺はcsvをperl製スクリプトでsqlに落としてから
isqlに-iオプションで食わせてデータを挿し込んでる。
スクリプトを弄ればダミーデータ作るのにも使える。
isqlのコマンドライン版は使い出があるから色々と試してみるといいよ。
368 :
デフォルトの名無しさん :02/11/01 12:21
外部ファイルは用が済んだらドロップした方が良いそうです。 バックアップやスイープなどで支障が出るそうです。NGで見たような気がします。 (IBの人気はフリーDBMSではPostgreやMySQLに続いて第3位だそうですね。)
・Prepare をコールするようにした ・Params の型をきっちり指定した ・INSERT INTO でフィールド指定をなくした あと、項目を1つ増やしたら不思議な事になぜか少しだけ速くなった・・・ これでなんとか7分になったよー(´∀`) >プログレスバーのせいでは… Σ(゚Д゚;)…… if ((n mod 100) = 0) then begin ProgressBar.StepIt; Application.ProcessMessages; end; これだけで4分切りました。 ありがとうございました。
>isqlのコマンドライン版は使い出があるから色々と試してみるといいよ。 いまIBのマニュアルを一通り読み終え、 やっとストアドプロシージャの設置方法がわかりました。 まだそんなレベル・・・
TIBQueryなどでPrepareを行っている時、Paramsの値を変える毎に Prepareする必要はあるのでしょうか? ヘルプを見ると >実行時に問い合わせテキストを変更すると,問い合わせは自動的に >閉じられ,準備が解かれます。 となっていますが、あくまでこれはSQLそのものを変更した場合であって Paramsの内容を変えただけの場合にはPrepareは不要なのでしょうか。 変な質問ですいません。
372 :
デフォルトの名無しさん :02/11/03 00:30
>>371 その必要は無いと思う。
ループ外の最初でPrepare、最後でUnPrepaerでいい。
問い合わせ最適化の為のパラメータ化クエリーなのだから。
了解です。 パラメータを変えると毎回Prepareしないといけないような 気がして不安だったのですが、安心しました。
374 :
デフォルトの名無しさん :02/11/04 22:50
Firebirdの本が今月末出るそうだよ。加藤大受が書いたそうだ。
377 :
デフォルトの名無しさん :02/11/05 09:50
毎日コミュニケーションズ。 本人から聞いたよ。
378 :
デフォルトの名無しさん :02/11/05 11:58
なんかトランザクションの管理が大変なんだけど みんなはどうよ?
加藤大受さん元気だったんだ。数少ないFireBirdの日本人メンバー だからねー。
382 :
デフォルトの名無しさん :02/11/05 21:36
>>380 IBDIのメーリングリストでは見たことがあるけど。最近は見かけないなあ。
つまり加藤大受はFirebirdプロジェクトと関係ないのね。
本人がいうには、Firebird QAには参加しているようだよ。まあ、もともと QAの人だからね。
ServerはFireBird IBConsolのInteractiveSQLで create procedure max_denno (v_shiten char(2), v_tok char(4)) returns (r_max char(10)) as begin select max(uridenno) from uritrn where (uritrn.shitencode = :v_shiten) and (uritrn.tokcode = :v_tok) into :r_max; end って記述して 実行するとエラーが Dynamic SQL Error SQL error code = -104 Unexpected end of command って出るけど、どこか構文間違ってる?
あ、出来ました suspend;が抜けてました 初歩的なミスですみません しかし、InteractiveSQLでコンパイルすると Dynamic SQL Errorが出るのはなぜだろう?
387 :
デフォルトの名無しさん :02/11/13 09:40
>386 set termを使ってないからじゃないかな。
388 :
デフォルトの名無しさん :02/11/19 18:24
近刊情報ということで...
Firebird−オープンソースデータベースの導入と運用の実際
著者:加藤大受
定価:本体3,800円+税
B5変型判・430ページ
ISBN 4-8399-0889-3
11月下旬発売とのこと。
http://book.mycom.co.jp/ (近刊のご案内欄)
>11月下旬発売とのこと。 って具体的にいつ? 誰か本屋行った人報告してちょ。
390 :
デフォルトの名無しさん :02/11/19 18:47
IBやFBのデータベースファイル(GDB)って、コピーさえ出来れば、他の環 境に移してSYSDBAユーザで開けちゃうものなんですか? ファイル単位でパスワード等を掛けることは不可能でしょうか?
>>390 コピーすれば Win でも Linux でもどこでも使える。
(これは長所)
>ファイル単位でパスワード等を掛けることは不可能でしょうか?
できないみたいだね。
OSの機能使って勝手にコピーできないようにして対処するしかない。
(これは短所)
そういうリクエストしてみたらいいんでないかい。Firebird プロジェクトに。
>>391 さっそく、ありがとうございます。
SYSDBAユーザに開けないGDBファイルを作成することも不可能なのでし
ょうか?
元ファイルのSYSDBAのパス変えても無駄ですよね?
>>392 >SYSDBAユーザに開けないGDBファイルを作成することも不可能なのでし
>ょうか?
さっき言ったとおり無理。
>元ファイルのSYSDBAのパス変えても無駄ですよね?
ユーザ名、パスワードって使用している gdb ファイルに記録されるんじゃないよ。
IB/FB ディレクトリにある isc4.gdb ってファイルに記録されるんだよ。
だから SYSDBA パスワード変えても、そのサーバ側の isc4.gdb が更新されるだけ。
>>391 無学な私に迅速なお答えありがとうございます。
では9X系のWindowsではテーブル構造等を隠すことは不可能なのですね。
みなさんはどのように対処しているのでしょうか?
>>394 >では9X系のWindowsではテーブル構造等を隠すことは不可能なのですね。
>みなさんはどのように対処しているのでしょうか?
運用に際には WinNT系やLinux にしないとまずいと思うよ。(外部にもれちゃまいずなら)
当然だけど、管理者しか管理者モードでログインできないようにすれば
まず勝手にコピーされることはないと思うよ。
(もちろんファイルパーミッションをちゃんと設定すること)
実は自分で使うものではなくて、頼まれたものなのです。 他所のPCにインストールしたいので、UNIXやNT系のサーバがない環境 も想定していました。 隠したい理由はセキュリティよりもテーブル構造等を恥ずかしいので 隠したいのです。文面でもわかるとおり無知なもので。 今まではJETで少し作ったことはあるのですが、少し勉強してみよう と思い、フリーで高性能、なおかつ使用しているC++Builderとの親和 性も高いので、FireBirdを使ってみようと思いまして。
>>396 >隠したい理由はセキュリティよりもテーブル構造等を恥ずかしいので
>隠したいのです。文面でもわかるとおり無知なもので。
>実は自分で使うものではなくて、頼まれたものなのです。
そのクライアントが IB/FB の管理ツール(IBConsole, DatabaseExplorer等)持っていれば
テーブル構造みられちゃうけどね。
恥ずかしいとかよりも、
さっきのレスのように勝手にコピーされると中身見られるから管理には気をつけて
って言ったあげることの方が大切なことだと思うよ。
>>388 Borland Conferenceでおいてあったチラシによると、
11月29日発売らしい。
400get! クソしてくる
Firebird本、本当に11月下旬発売なのか? cbook24で予約しようとおもったんだけど...
書泉で立ち読みしてきました。 Java, Delphiの例はもちろん、Perl, Python 果てはZopeでの利用例まで載ってる。 欲張り過ぎで個々の中身うすい。 アスキーの「データベースLinux(下田雅彦 著)」のほうがいいよ。
>>403 bookmallで購入したのが届きました。
Javaの記事が多い加藤さんらしく、Javaから使うときにはいいかも。
あとは参考までにいろんな使い方があるっていう感じだな。
407 :
デフォルトの名無しさん :02/12/04 12:04
DelphiでIBXを使って開発しています。 レコードをINSERT後にすぐオープンダイアログを表示して、 ファイルが選択されなかったらロールバック 選択されたらコミットしたいのですが・・・ オープンダイアログを開くだけでトランザクションが閉じてしまい困っています 何か設定があるのでしょうか? もしおわかりの方いらっしゃいましたら教えてください よろしくお願いします。
>レコードをINSERT後にすぐオープンダイアログを表示して、 >ファイルが選択されなかったらロールバック >選択されたらコミットしたいのですが・・・ 手順がおかしいぞ。 ファイル選択 → INSERT(COMMIT) の順じゃいけない理由を教えてクレ。 >オープンダイアログを開くだけでトランザクションが閉じてしまい困っています その部分のソース提示してよ。
フォルダ選択ダイアログの間違いでした。すみません。 フォルダ選択ダイアログではフォルダを新規に作成する事もできますので、 フォルダ選択(実は作成した) → INSERT ...キャンセル とされるとフォルダが残ってしまいます。 作成されたフォルダかどうかは判断できないため削除するわけにもいきません で、データを登録してから開始フォルダを選ぶという事にした次第です。 ExecInputForm; try //InTransaction=TRUE if not FolderDialog.Execute then //InTransaction=FALSE Abort; // 処理 Commit; except RollBack; end;
まちがいました if not ExecInputForm then begin Exit; end; try です。
abortした際にexceptへ処理が飛んでいますか? (HELPにはfinalyへ飛ぶとありますがexceptとはなっていないので) 例外処理で対応せずにif elseで分岐させれば正常に動作しますか? raiseでエラー生成するとどうなりますか?
教えて君ですみません。 PHPでInterbaseを利用しようと思っています。 1、例えば"SELECT aaa FROM table"の結果の件数を知るのに どのようにしてますか?"SELECT COUNT(aaa) FROM table"として 再度"SELECT aaa FROM table"を投げているのですが、どうもスマートに 思えなくて。他の方はどうしているのでしょうか。 2、PEARを利用した際に、 $result = $database->$query("SELECT * FROM $table"); と*を利用するとhttpdが落ちるのですが正常に動作しますでしょうか。 3、同じくPEARを利用した際に、 $query = $database->prepare("INSERT INTO table(a, b) VALUES (?,?)"); $array = array(c,d); $result->execute($query, $array); が利用できない($arrayが展開されて代入されない)のですが正常に動作 しますでしょうか。 4、PerlでDBDを利用する場合、SELECTの結果の指定件数(n件めからm件まで) を取り出すという関数はあるのでしょうか。 環境はTurbolinux7Server+apache1.3.27+php4.2.3+Firebird1.0です。 (apache,phpともにTurboLinuxの公式サイトのものです。 phpはibaseが使えるようにspecを弄りました) どなたかよろしくお願いします。
>>413 PHP のことはわかりませんが、
>1、例えば"SELECT aaa FROM table"の結果の件数を知るのに
> どのようにしてますか?"SELECT COUNT(aaa) FROM table"として
> 再度"SELECT aaa FROM table"を投げているのですが、どうもスマートに
> 思えなくて。他の方はどうしているのでしょうか。
件数を知るには COUNT 使って取得するか、
クエリの結果セットを最後までフェッチして自分で件数をカウントするか
のどちらかしかないと思う。
>4、PerlでDBDを利用する場合、SELECTの結果の指定件数(n件めからm件まで)
> を取り出すという関数はあるのでしょうか。
>環境はTurbolinux7Server+apache1.3.27+php4.2.3+Firebird1.0です。
最初に
>PHPでInterbaseを利用しようと思っています。
とあったけど Firebird なら、FIRST と SKIP 使えばできます。
SELECT FIRST m SKIP (n-1) aaa FROM table
・SKIP は先頭から無視する行数
・FIRST は取得したい行数(この値以下の行数分取り出せる)
これは InterBase では使えないから注意。
オレは使ったことないけど、InterBase 6.5 にもこれに相当する機能があるらしい。
>>413 PHPのドキュメント眺めるとわかると思いますが、Interbase以外の
DB用関数にクエリ関数で返ってきた結果(ストリーム)の行数を数え
るXXXX_num_rows()関数(MySQLならmysql_num_rows())があります。
・・・とは言っても
1. XXXX_query()関数でSQLを投げて結果を得る
2. 得た結果をXXXX_num_rows()関数に食わせて行数を得る
の様な使い方になるので、413さんの2回SQL文を投げるやり方でも
汚くはないと思いますが?
ご返信&情報ありがとうございます。 >414 書き方が悪くてすみません。急にPerlの話を出して。えと、PEARとかDBDを 利用することを考えているのは、なるべく汎用化できないかと思っているのです。 移植の際に触る部分を減らしたいなぁと。 A社ではpostgres,B社ではFireBird,C社ではフリーはダメよとか いろんな案件でも使いまわしができた方が楽なので。 今のところ、PEARはHTTPDごと落としてくれるしDBDも未完と聞いたのですが 今の内に準備しておこうと思いまして。 FIRST,SKIP個人的に待望の機能です。ありがとうございます。 >415 PEARにもnmRows()あるんですけどInterbaseで試したら使えませんでした。 MySQLでうらやましいのはnum_rows()の後、続けてfetch処理ができるのに Interbaseだとfetchして行数をカウントした後、 再度クエリーを投げてfetchしなきゃならない。 スマートさ以前に処理時間がかかる・・・。 PEARの件は、外国のMLも検索したのだけれど数件しかヒットしないし、 prepareの問題は出ていないようで、本当に日本で宣伝されているほど 米国ではメジャーなDBなのか疑問に思うほどです。 好きなDBなので、他にもすすめたいのですが・・・。 日本語版6.5も出る気配がなさそうですね。 最後は愚痴になりましたが、ありがとうございました。 PEARについてはPHP板のほうでもあらためて聞いてみます。 マルチだと非難しないでくださいね。
>>416 >...本当に日本で宣伝されているほど
>米国ではメジャーなDBなのか疑問に思うほどです。
同感。
> 日本語版6.5も出る気配がなさそうですね。
IB6.0 が売れてないからかな?
フリーの Firebird があるからわざわざ金だしてまでも買わないんだろうね。
豊富なミドルウェアってことを宣伝文句にしてるけど、
ただ使えるっていうだけであって実用レベルじゃないんだね。
Java には結構力入れてるって感じがするけど。
>>417 米国で売れているというよりもモトローラがずいぶん使っている
だけじゃないかな。イメージ的にはヨーロッパのユーザーが
多い気がするけどね。
結局、Borlandのツールとの連携がいいって部分にはミドルウェアの
良さはないんじゃないかな。
シャドウ(ミラーリング?)の作成のしかたって どうするの? IBConsoleからできますか?
>419 なぜ尋ねるのにsage? CREATE SHADOW....
421 :
デフォルトの名無しさん :02/12/09 10:54
マニュアルもろくに読まない人が CREATE SHADOW したって無駄だと思います。 どうせほかの原因でシステムがクラッシュするでしょうから。
>>419 InterBase のマニュアルもってないなら、以下のコメント参照してみて。
http://pc3.2ch.net/test/read.cgi/tech/1035278719/27 このセットアップファイルを実行しなくても、アーカイバ使って
pdf ドキュメントだけ取り出せます。
あとご存知かもしれませんが、
「Firebird オープンソースデータベースの導入と運用の実際」
(ISBN4-8399-0889-3) \3,800(税別)
という本が出ています。
InterBase にも対応しているのでご購入してみる価値はあると思います。
コンピュータ書を大きく扱っている本屋じゃないと置いてないかもしれません。
(私はネットで購入しました。)
>>419 >IBConsoleからできますか?
GUIではできません。
「Interactive SQL」ウィンドウからならばできますが、
SQL文を入力する必要があります。
Borland の InterBase6.0(商用版) についてくるマニュアルは 5.x のマニュアルと内容は(ほとんど)同じでしょうか? 形式はやはり pdf ?
D7 日本語版にはこっそり IB6.5 が入っていますが、なにか?
>>426 漏れは商用版とオープンソース版両方持ってるが、
マニュアルと IBConsole は商用版、本体はオープンソースを使ってる。
やっぱ紙のマニュアルは・・・(・∀・)イイ!
428 :
デフォルトの名無しさん :02/12/11 14:25
>425 そなの? で、ライセンスはどうなっているの? まさか、開発はできるけど、リリースできないなんてことはないよね。 リリースは旧版でとかさ。 バカにするにもいいかげんにしてほしいよね。
>まさか、開発はできるけど、リリースできないなんてことはないよね。 MSDEのようなサブセット・機能制限付きでリリースするくらいなら Firebirdを使えばいいからライセンスは気にならないな 将来的に互換性が心配ならむしろFirebirdで開発すればいいし
>429 ちゃいまんがな。 そんなことを言ってるんじゃないんです。 別にユーザーがFireBird使おうと、Oracle使おうと関係なく、 BorlandがどういうつもりでD7に同梱しているのか を問うてるんです。
432 :
デフォルトの名無しさん :02/12/11 15:32
例えリリースOKだとしても、同時接続制限されてるはずだから 別途接続ライセンス買わなきゃならんだろう。 Firebird なら接続ライセンスは存在しないから、 一切金が掛かることはない。 InterBase(商用) はいざというときメーカーが面倒みてくれるから、 とか聞くけど、保守料支払っても問題解決することはほとんどないよ。 某のサポートのレベルがどうこうというのもあるが、 結局は自分でなんとかしなきゃならんから意味なし。 メーカーサポートよりコミュニティの方がレベルが高いし。 InterBase に未来はないだろうから Firebird に乗り換えよう。 今からなら難なく Firebird に乗り換えられる。
433 :
デフォルトの名無しさん :02/12/11 15:36
>>430 オレは D7 まだ買ってないからよく知らないけど、
これに同梱されてるのって LocalInterBase とかいうヤツじゃないの?
D7 じゃなくても入ってたよね。こんなようなヤツが。
ようするに InterBase を体感してもらうためだと思う。
良ければ買えと。
>>430 それはスマソ
Paradoxでの開発は推薦しないということだから
開発用にIBを入れるのは当然でしょ
ま、本音は「あわよくばIBを売りたい」ってとこでしょうけど
VSにMSDEを入れてSQL Serverを売ろうというのと似たようなもの
ユーザー制限付きでIBの配布が可能ならMSDEと同等というとこだろうけど
Firebirdがあるからまあいいかと思っちゃます
>>431 Del6に付いてるIBXでは今のところ問題なし(IBTableは使わないという前提で)
互換性はDelとFirebirdのバージョンアップの際に気をつけないといけないけど
某がわざとFirebirdでの開発ができなくなるようにするとは考えにくいよね
(DB開発者が一斉にバージョンアップをボイコットするだろうから)
436 :
デフォルトの名無しさん :02/12/11 15:47
>>435 そのうち FBX(Firebird Express) なるものが出るかもよ。
IBX は IBDatabase, IBTransaction, IBSQL で充分。 データコントロールと連携させるアプリはショボい。
>>436 Firebird 1.5 では
ibserver → fbserver
gds32 → fbclient
に名前が変更されているようだね。
わーん、解ってくれないよぉ。みんな大人だよぉ。 D7付属のInterbaseは6.5なんでしょ。 で、そのInterbase6.5は販売の予定がないでしょ。 Firebirdとの互換もないかもしれないでしょ。 IB売りたいなら販売している6.0にすべきだし、 大胆にFirebirdという手もある(無理だろうけど) 出す気もない6.5を同梱しているのはどういうことだ。 バージョンの違う環境でビジネスアプリ開発するか? IBが売れるか?顧客へ導入の説得ができるか? おざなりにも程があると思うんだが。 でも沈みがちなこのスレが上がってうれしいのでage。
>>439 FB>>>>>>>>>>>>>>>IB6.0
だから 6.5 付けなきゃと思ったのかな。
でも謎ですね。暇なら謎解きお願いします。
ところで同梱されてるのはどうせ Desktop Edition でしょ?
Firebird があるのになんでこんな中途半端なもんか不思議。
>>439 RDBMS 初心者向けのために同梱しただけかも。
これで勉強してくれと。(ただし運用はできんが)
DB初心者なんですが、 C++BuilderやDelphiにあるIBXでFireBirdをたたくことはできるんでしょうか? ひょっとしてガイシュツな質問……?
>>444 ああ、早速の回答ありがとうございます。
ではやってみます。
と、いう訳で自分のPCを人柱にインストール済みのInterBaseをアンインストールして
先ほどDLしたFireBird(日本語化したやつ)をインストール。
C++Builder5(Pro)でTIBDatabaseを使ってテスト。
……うーん、やっぱりただインストールしただけではだめなんかなあ。
コンソール側(FireBirdに付属のやつ)ではInterBaseが生成したファイルにアクセスできました。
>C++Builder5(Pro)でTIBDatabaseを使ってテスト。 >……うーん、やっぱりただインストールしただけではだめなんかなあ。 どうダメだったのか詳しく説明してもらわないと答えようがないよ。
>>446 お世話になってます。&ご迷惑をおかけしました。
えーと、あれからいろいろ試してうまく動くようになりました。
こちらの早とちりでした。
テスト用に書いたコードではTIBTableを介してTDBGridに接続してたんですが、
TIBTable::Activeがfalseになっていただけのこと。
無事テーブルの情報を得ることができました。
アドバイスとお気遣いをありがとうございます。
>>19 以降各書で TIBTable の問題が挙がってますけど、
その後新しい情報はありませんでしょうか?
漏れのアプリは TIBTable だらけなので心配でしょうがないです。
やっぱ TIBDataSet に置き換えた方がいい?
でも参照項目とかもバンバン使いまくってるしな〜(鬱
>>448 それより TIBTable って利用価値あるの?
Query 系じゃないと実用にならないと思うが。
>>449 レスさんくすこ。
DBGrid 使っての編集とかが TIBDataSet ではできないですよね〜(鬱
>Query 系じゃないと実用にならないと思うが。
この辺の話、も少し詳しく教えてきぼんぬ。
>>451 ご苦労様
>SorceForgeにプロジェクトページだけはあるね。
>
http://sourceforge.net/projects/fbx/ そうなのか。これに期待したい。
IBX と干渉しないように完全分離してもらいたいよね。
>ここのInterXpress for Firebird(まだαらしい
これって dbExpress でしょ。
IBX と違って配布時に余計なランタイム必要になるよね?違うかな??
>>450 TIBQuery と TIBUpdateSQL を組み合わせればできるんじゃない?
TIBUpdateSQL は右クリックしたダイアログで SQL 文自動で
作ってくれるからそんなに難しくないと思うけど。
オレは DataControls コンポーネント使ってやらないから
TIBSQL さえあれば充分。
特に DBGrid のスクロールの挙動が気にくわないから、
自前で作ってる。
>>452 > >ここのInterXpress for Firebird(まだαらしい
> これって dbExpress でしょ。
> IBX と違って配布時に余計なランタイム必要になるよね?違うかな??
余計かどうかは置いといて、データベースごとにDLLがいるね。
どのみちIBX使う場合でも、gds32.dllは否応なしに配布が必要なんだから
DLLが一つ増えたぐらいなんでもないかと。
>>453 レスThanx。
> 特に DBGrid のスクロールの挙動が気にくわないから、自前で作ってる。
( ´・ω・)ショボーン ・・・ そこまで腕ないから、あきらめて TIBTable 使おうかと思います。
>>455 でも参照するだけのテーブルは TIBDataSet に移行を検討中だったりしまつ。
>>456 TIBDataSetでDBGridを使えるよ
IBDataSetをマウス右クリックして
「データセットの編集」を開いて
「キー項目」と「更新する項目」を選んで
「SQL文を生成」を実行すると
変更、追加、削除、更新の各SQLが自動生成され
(もちろん後でこれらのSQLを編集することも可)
これで何の支障もなくDBGridも使えるようになるよ
>>457 追記
もし「データセットの編集」がでてこないようだったら(Pro版だと無いかも)
ModifySQL、InsertSQL、DeleteSQL、RefreshSQL
の各プロパティに適切なSQL文を書き込むことで同等になる
ModifySQLの例 update MEMBER set ID = :ID, NAME = :NAME where ID = :OLD_ID InsertSQLの例 insert into MEMBER (ID, NAME) values (:ID, :NAME) DeleteSQLの例 delete from MEMBER where ID = :OLD_ID RefreshSQLの例 Select ID, NAME from MEMBER where ID = :ID
>>458 「データセットの編集」とか言う名目じゃないけど右クリックしたらありました。
情報サンクスコさんです。
質問です。Del6+FireBird日本語版+IBX使ってます。 TIBDataSetでSelectSQLにSQL文を設定、OPENした後、 結果セットが存在しないならInsertSQL文を実行させようとしてるのですが、 EIBClientError・・・「use Open for a Select Statement」が発生しちゃいます。 ExecSQL実行する前にCloseはしてるのですが、何か抜けてるとこありますでしょうか?
>>461 TIBDataSetでExecSQLを使う条件は
・SelectSQLにSQL文が書かれていること
→このことからExecSQLで実行されるのはSelectSQLだと分かる
・SelectSQL文に書かれているSQLが「Select文ではないこと」
要するに変則的な使い方になるわけですね
TIBDataSetはBDEにおけるTTable相当と考えて
特殊な処理はTIBSQL等他のコンポーネントを使うのが良いかと
まあ if aIBDataSet.RecordCount=0 then aIBDataSet.Insert; でいいと思うわけで 要するにTIBDataSetでExecSQLはあまり使わない方が・・・
>>463 たびたび有難う御座います。
TIBTableはTIBDatasetに、TIBQueryは、TIBSQLに移植を検討して見ます。
でも2ちゃんにしては珍しく良スレですね、ここは・・・(^^;
>>464 TIBSQL は DataControls コンポと連動できないってこと知ってるよね?
(要するに Delphi データベースフレームワーク外ってこと。)
画面表示する際は自前でやる必要があるから。(DataControls は使えない)
まあオレは TIBSQL しか使わないでやってるけど。
トゥワイズ・ラボさんの火の鳥1.0使って見ました。 Interbaseと違って「あれ?」って思ったんだけど、Interbaseなら SELECT ID FROM A, B WHERE A.ID = B.ID; で結果セットがちゃんと返ってくるけど、火の鳥だと SELECT A.ID FROM A, B WHERE A.ID = B.ID; みたいにテーブル指定してやらないと、「曖昧だ!テーブル名指定しろ!」って 怒られちゃうみたいだね。
>>466 FirebirdのDBがDialect3になってるでしょ?
どなたかお知恵をお貸し下さい PROCEDUREの中で他のPROCEDUREは呼び出せないのですか? いろいろとやってみたのですが、何やら怒られてしまいます。
>>470 IBの導入ガイドがあれば読むべし。
SQLダイアレクトに関する詳しい説明が載ってる
>>469 EXECUTE PROCEDURE でできるよ。
パラメータなし、戻り値なし)
EXECUTE PROCEDURE hogeA;
パラメータあり、戻り値なし)
EXECUTE PROCEDURE hogeB(param1, param2,...);
パラメータなし、戻り値あり)
EXECUTE PROCEDURE hogeC RETURNING_VALUES :retVal1, :retVal2,...;
パラメータあり、戻り値あり)
EXECUTE PROCEDURE hogeD(param1, param2,...) RETURNING_VALUES :retVal1, :retVal2,...;
DB作成者または SYSDBA 以外にも呼び出せるようにするには、
GRANT EXECUTE ON PROCEDURE hogeX TO USER1
とか
GRANT EXECUTE ON PROCEDURE hogeX TO PUBLIC
あるいは
GRANT EXECUTE ON PROCEDURE hogeX TO PROCEDURE hogeCallerProc
のような定義を入れる。
>>471 ダイアレクトは関係ねえよ。Firebirdも0.9Xの頃は
SELECT ID FROM A, B WHERE A.ID = B.ID;
で通ったんだよ。1.0でチェックが厳しくなった。
>>473 Firebird1.0からデフォルトでDiarect3を使用するようになったんだよ。
手持ちのFrebirdのDBにDiarect1で接続して試せ。
結果を確認したら回線切って首吊って死ね。
オマエらそんなことでムキになるなよ。 Firebird なんてまだマイナーなんだからさー、 せめて良スレにしてさー、使ってないヤツらにこのスレ参考にしてもらえるよう 努力してこうや。
>>473 加藤さんの本買え。
確かに、浅く広くって感じだけど、漏れには役に立ってる。
付録のSQLの説明も使えるし。まぁ、厚いからコピーとって使ってるけどな。
強いていえば、あそこまでやるならRubyからの接続法も入れてほしかったな。
あとは、Delphi/Kylixからの使い方をもっと突っ込んでほしかったなぁ。
それから、この時期に出すんだったら、1.5についても触れておいてほしかったなぁ。
あ、あと、ほかのデータベースからの移行方法とかも書いてあるとよかったな。
って、ぜんぜんダメみたいじゃん(w
でも、漏れは十分に元がとれたと思ってるぞ。
477 :
デフォルトの名無しさん :02/12/14 14:01
InterBase7 の InterClient は Type4 と謳ってるけど、
http://www.borland.com/interbase/pdf/ib7_datasheet.pdf の3ページ目のダイアグラムみると GDS32.DLL 経由してるように
なってるんで、そうなると Type2 ということになるはずだけど、
ダイアグラムの方が間違ってるってこと?
それともクライアントに GDS32.DLL がないとダメってこと? (それならば Type4 ではない)
ちなみに Firebird の JDBC Type4 ドライバの方はソースちらっと見てみたけど、
GDS32 は経由せずに直に Firebird Server と通信しているようだったから
まさしく Type4 ということになる。
478 :
デフォルトの名無しさん :02/12/14 14:13
pinkserverってアダルトサイトじゃなかったっけ? 宣伝か?
>>474 手元にあったFirebird 0.94ではデフォルトがDialect3になってますが
>>473 の言う通り
SELECT ID FROM A, B WHERE A.ID = B.ID
で通りますよ。
複数のテーブルを使うときは明示した方が無難でしょ 後で項目を増やすことになったら何が起こるか分からない
482 :
デフォルトの名無しさん :02/12/15 09:22
ちょっと、おしえてくれ。スマソ。 IBConsoleでCSVのデータ3万件を取り込めないよね? それとも取り込めるの?
>>482 固定長形式なら取り込める。
Excelとか使って無理やり固定長形式に変換して
あとは外部テーブル作成してINSERTで一気に取り込めば
OKかと。
484 :
デフォルトの名無しさん :02/12/16 15:03
InterBase(FireBird)で以下のようなTableのとき FieldA, FieldB, FieldC, FieldD, FieldE FieldA,B,Cに主キーを設定 FieldA, FieldD, FieldEの条件式でデータを抽出したいので 別にFieldA, FieldD, FieldEにIndexを張ったのになぜか Planで調べると主キーのほうが使用されて 検索が遅いのですがどうしてでしょう? Oracleだと1秒未満の検索も InterBaseだと5秒以上かかってしまいます もしIndexの使い方がおかしければ、指摘して頂けないでしょうか?
485 :
デフォルトの名無しさん :02/12/16 17:49
>>484 order by 句で FieldA, FieldD, FieldE を指定すればその index 使うと思うが。
>>484 SET PLAN
使ってindex使っているかどうか確認したら。
order by 句で FieldA, FieldD, FieldE を指定して Set Planを使用してみました が、結果は同じ、プライマリーキーを使って検索をしてしまいます ちなみに新しく作成したIndexのActiveはTrue,uniqueはFalseで FireBirdのバージョンは1.0です
>>487 >order by 句で FieldA, FieldD, FieldE を指定して
order by 句での昇順or降順方向とインデックスの昇順or降順方向と一致してる?
例えば、
create asc index idx1 on table1(FieldA, FieldD, FieldE);
のインデックスを作ったとしたとき、
select * from table1 order by FieldA asc, FieldD asc, FieldE asc;
を実行すると idx1 インデックスを使うと思うけどな。
ただし、以下のように 1 つでも降順指定すると idx1 を使わないはず。
select * from table1 order by FieldA desc, FieldD, FieldE;
返信ありがとうございます >484です >order by 句での昇順or降順方向とインデックスの昇順or降順方向と一致してる? はい、再度確認をとりましたが一致しています あれからいろいろと考え プライマリーキーをDropIndexで削除(参照整合性のIndexのみ)したところ ExceptionTimeが5.0348だったのが 0.0030(Indexは参照整合性のために作ったIndexを使用してるようです)になりました これっていったいどういう事でしょう? Indexの作り方が間違ってるのでしょうか?
追記です 他のTableもプライマリーキーをはずしたところ 10万件以上のTableですと明らかに検索スピードがアップします もしかしてFireBirdってプライマリーキーは設定しない方がいいのかな? (そんなわけないですよね(^_^;)
プライマリーキーを複数の項目に設定するというのは おいらなら普通は避けるけどな〜 その辺が関係してるのではなかろうか(試してないけど)
>484 プライマリキーがどうこうじゃなくて、最適のインデックスを使ってくれないから 遅いってことだろ。 その現象が起こる、テーブルとインデックスの定義内容と SELECT 文提示してくれない? こっちでも試してみたいから。
create table test( FIELD1 FIELD1 not null, FIELD2 FIELD2 not null, FIELD3 FIELD3 not null, FIELD4 FIELD4 not null, FIELD5 FIELD5 not null, FIELD6 FIELD6 , FIELD7 FIELD7 , FIELD8 FIELD8 , FIELD9 FIELD9 , FIELD10 FIELD10 , FIELD11 FIELD11 , FIELD12 FIELD12 , FIELD13 FIELD13 , FIELD14 FIELD14 , FIELD15 FIELD15 , );
create domain FIELD1 as char(2); create domain FIELD2 as TIMESTAMP; create domain FIELD3 as char(10); create domain FIELD4 as char(4); create domain FIELD5 as char(3); create domain FIELD6 as TIMESTAMP; create domain FIELD7 as varchar(10); create domain FIELD8 as varchar(10); create domain FIELD9 as varchar(10); create domain FIELD10 as varchar(10); create domain FIELD11 as varchar(10); create domain FIELD12 as varchar(10); create domain FIELD13 as varchar(10); create domain FIELD14 as varchar(10); create domain FIELD15 as varchar(10);
alter table test add constraint PK_TEST primary key (FIELD1, FIELD2, FIELD3, FIELD4, FIELD5); select count(*) from TEST where FIELD1 = '01' and cast(FIELD6 as date) between '2001/01/01' and '2001/12/31' and FIELD4 = '0001' order by FIELD1, FIELD6, FIELD4;
こんな感じです プライマリーキーの代わりにUNIQUEでFIELD1,FIELD2...としても 遅くなります 外部キーは省略しました これに10万件、適当なデータをいれれば大丈夫かと思います
>>496 ほとんど指示通りにやったけど495のselectは一瞬で実行されるよ(by PenV650MHz)
(ドメイン名とフィールド名が同じというのは気持ち悪かったのでそこだけ変えたけど)
確かにインデックスにプライマリキーが使われてるけど・・・遅くはないな〜
>484
その DDL に以下を追加してやってみた。(データ件数は1件とした。)
create index test_idx1 ON test(FIELD1, FIELD6, FIELD4);
確かに
>>495 を実行するとプライマリーキーのインデックス(RDB$PRIMARY1)使ってたよ。
(ところで、カウントを求めるクエリの場合は order by 句は関係ないからオプティマイザが削除してくれてるかも。)
ちなみに "select count(*) ..." を "select * ..." に変えて実行すると
ちゃんと test_idx1 インデックスを使うようになった。
ためしにプライマリキーを定義しなかった場合は、
>>489 の言う通り、ちゃんと test_idx1 インデックスを
使うようになった。(order by 句を付けても付けなくても同じ)
(sql dialect 1 にしても同じ結果だった。)
ということで、結論は count 演算させる SELECT の場合に使われるインデックスはプライマリキー固定となってしまう。
(インデックスが使われない場合を除いて)
これは Firebird のバグじゃないか?
集合関数ってWHERE文の有無に限らず無条件にフルスキャンじゃなかったっけ?違ってたらスマソ
実行結果は一瞬でしたか・・・ だとするとなんだろう? 外部キーとプライマリキーやUniqueのIndexが重複しているからだろうか? (主キーのTimeStampのField以外は全て外部キーを設定してある) 以下がその外部キーの設定状態です alter table test add constraint FK_TEST_MST1 foreign key (FIELD1) references MST0(MST0_FIELD1) on update CASCADE; alter table test add constraint FK_TEST_MST2 foreign key (FIELD1, FIELD4) references MST1(MST1_FIELD1, MST1_FIELD2) on update CASCADE; alter table test add constraint FK_TEST_MST3 foreign key (FIELD1, FIELD5) references MST2(MST2_FIELD1, MST2_FIELD2) on update CASCADE; /*主キーの外部キー設定はここまで*/ /*後は各フィールド毎に必要な外部キー*/ alter table test add constraint FK_TEST_MST4 foreign key (FIELD8) references MST3(MST3_FIELD1) on update CASCADE; alter table test add constraint FK_TEST_MST5 foreign key (FIELD1, FIELD10) references MST4(MST4_FIELD1, MST4_FIELD2) on update CASCADE; ちなみに select * from TEST where FIELD1 = '01' and cast(FIELD6 as date) between '2001/01/01' and '2001/12/31' and FIELD4 = '0001' order by FIELD1, FIELD6, FIELD4; としても、同じように遅いです (本当はこっちの処理を行いたかったので) 現在は主キーや余分なIndexを削除して対処しています
502 :
bloom :02/12/17 18:13
>>501 だから
>>495 のプライマリキー
>alter table test add constraint PK_TEST primary key (FIELD1, FIELD2, FIELD3, FIELD4, FIELD5);
を定義しないとちゃんと他のインデックスが使われる。
結論は
>>499 にある。
InterBase でも
>>499 と同じ結果。
よって Firebird の特有の問題ではなさそう。
>503 はい、>499の結論は理解しています 任意のIndexを設定してそれを使用していることも確認しました しかし、プライマリーキーであれ、任意で設定したインデックスであれ なぜか、それを使用するとSelectの実行結果が遅く(10秒ぐらい)なってしまうのです そこで、外部キー以外を全て削除して、再度実行すると一瞬(0.05秒ぐらい(^_^;)で結果が 返ってきます DataBeseの検証なども行いましたが異常は無し この不可解な事にどう理解すべきか頭を悩ませているところです (Indexが増えれば更新が遅くなるのは理解できますが、Select文が遅いというのは 聞いたことがないもので・・・) しつこくてすみません。
その後いろいろとテストしてみました セレクト文は一緒です select * from TEST where FIELD1 = '01' and cast(FIELD6 as date) between '2001/01/01' and '2001/12/31' and FIELD4 = '0001' order by FIELD1, FIELD6, FIELD4; プライマリーキー有り その他のindex無し --------結果---------- プライマリーキーが使用され かなり遅い ---------------------- プライマリーキー有り [Field1,6,4]のindex有り --------結果---------- [Field1,6,4]のIndexが使用されるが かなり遅い ----------------------
プライマリーキー無し [Field1,4,6]のindex有り --------結果---------- [Field1,4,6]のIndexが使用され 速い! ---------------------- プライマリーキー有り [Field1,4,6]のindex有り --------結果---------- プライマリーキーが使用され 遅い ---------------------- プライマリーキー無し その他のindex無し --------結果---------- 当然遅い ---------------------- どうやら、Indexを定義するときFieldの順番通りに 設定しないとどうもフルスキャンしてしまっているような・・・ それとも私の環境だけだろうか?
508 :
デフォルトの名無しさん :02/12/17 20:13
PostgreSQLはCSVファイルを取り込むのに、\copy コマンドを使えるのですが、 InterBaseはダメなんですか? CSV取り込みのないDBって、使えないじゃん
今見てみたんだがExcelって固定長形式で データ吐き出せないみたい。 Access使うとか自分で変換スクリプト書くとか しないと駄目かな。
Del+IBX で CSVファイル読み込み→DBテーブル書き込み プログラム作った方が早いと思うよ。 Import/Export 対応にして汎用に作れれば便利かも。 こんな感じ。(あくまでも例です。) csv2tbl-table1.ini [environ] dbPath=127:0:0:1:c:\db1.gdb tableName=table1 colCount=2 [col1] fieldName=ColNameA dataType=integer isNullable=false format="%2d" [col2] fieldName=ColNameB dataType=string isNullable=true format=
ちなみに Export だけなら Marathon や IBQuery 使えばできるよ。 特に IBQuery ならば、以下の形式で出力できる。 ・dBase III+ ・MS Excell ・HTML ・CSV ・Raw
>484 Marathon 使ってみ。 これに「Performance Analisis」っていう画面があって、実行したクエリのインデックスのリード回数が グラフで表示されるから参考になるかもしれない。 「SQLTrace」っていうクエリのトレース内容が表示される画面もある。
>>495 の
>alter table test add constraint PK_TEST primary key (FIELD1, FIELD2, FIELD3, FIELD4, FIELD5);
を
alter table test add constraint PK_TEST primary key (FIELD1);
または
alter table test add constraint PK_TEST primary key (FIELD1,FIELD2);
にすると、まともな index を使うようになった。
ちなみに
alter table test add constraint PK_TEST primary key (FIELD1,FIELD2,FIELD3);
のように3個のカラムをプライマリキーに設定するとダメだった。
ということで、結論はプライマリキーは3カラム以上の組み合わせにすると、
オプティマイザの挙動がおかしくなる(*場合がある*)。
(
>>499 の結論は撤回します)
ただし
>>506-507 の index 使っても遅くなる問題は未解決。だよね?
>514 Marathonは愛用しています しかし、1.5(1.6?)というバージョンのせいか Performance Analisisを有効にすることが出来ません もしよければどこのオプションで有効にするか教えて頂けないでしょうか? >515 はい、遅くなる現象は続いています
>>517 >しかし、1.5(1.6?)というバージョンのせいか
>Performance Analisisを有効にすることが出来ません
>もしよければどこのオプションで有効にするか教えて頂けないでしょうか?
こちらでも 1.6 使ってるよ。
特に何も設定した覚えはないけどな〜。(まだそんなに使い込んでるわけじゃないから詳しくないです)
とりあえず、ただ単にメインメニューの [Tools] → [SQL Editor...] で
「SQL Statememt」ウィンドウ開いて、「Edit View」タブページに任意のSQL 文入力して
実行すると、「Performance Analysis」タブページにグラフが表示されるけど、
そのページに表示されない?それともそのページ自体がない?
一応 [Help] → [About] ダイアログで表示される内容(Version)は以下の通りです。
...
Powered by IBObjects (3.4.B)
Version 1.6
Build 16
...
>はい、遅くなる現象は続いています
できたらプライマリキーを
alter table test add constraint PK_TEST primary key (FIELD1);
にして試してもらえないかな?
(関係ないかも知れないけど。)
「Performance Analysis」タブページはあるのですが そこに 'There is no performance data being colected, To colect display data check "Show performance Data" in the Object Menu"' とあってグラフは表示されませんでした >alter table test add constraint PK_TEST primary key (FIELD1); データの構成上プライマリーキーを一つにすることは出来ませんでした すみません
あれから実験ちょっとした実験をしてみたのですが ちょっと見ていってくれませんでしょうか? >493-495のTableでSQLでプライマリーキーを設定しないで 以下のIndexを作成します create index TEST_IDX1 on uritrn(FIELD1, FIELD4); create index TEST_IDX2 on uritrn(FIELD1, FIELD6); create index TEST_IDX3 on uritrn(FIELD1, FIELD4, FIELD6); create index TEST_IDX4 on uritrn(FIELD1, FIELD10, FIELD11); create index TEST_IDX5 on uritrn(FIELD1, FIELD10, FIELD12, FIELD15); create index TEST_IDX6 on uritrn(FIELD1, FIELD10, FIELD11, FIELD13, FIELD14, FIELD15); さて同じSQL(ORDER BY FIELD1, FIELD6, FIELD4)を実行した場合 どれが使用されるかというと なぜか一番下のTEST_IDX6が使用されます もちろん速度は遅いです ORDER BY句を削除しても同じでした TEST_IDX2,かTEST_IDX3を使用するだろうと期待していたのですが こういう結果になりました。 これって普通?
>>520 uritrn => test だね。
>create index TEST_IDX3 on uritrn(FIELD1, FIELD4, FIELD6);
FIELD1, FIELD6, FIELD4 の順じゃないの?
まず、
>>495 は行数を取得するだけだから order by 句は無視されると思う。
>>495 を "select * ..." にして実行すると、
TEST_IDX3 (FIELD1,6,4 の順にしたやつ)がちゃんと使われる。
ちなみに order by 句を削除すると(where句だけ) TEST_IDX6 が使われる。
>>521 の追加
ちなみに
select *
from TEST
where FIELD1 = '01'
and cast(FIELD6 as date) between '2001/01/01' and '2001/12/31'
and FIELD4 = '0001'
order by FIELD1, FIELD4;
だと、TEST_IDX1 が使われる。
>FIELD1, FIELD6, FIELD4 の順じゃないの?
この順番でIndexを作成すると検索スピードが遅くなるのですが
わたしだけなのかな?
>
>>495 を "select * ..." にして実行すると、
ここの部分の変更を書き忘れてました
すみません
なんだか長々とスレを汚してすみません
>>524 追記ですまそ。Del5 についてくる IBX 初期版 にはこのプロパティないのよね。
>>524 試せばわかるぞ。
AllowStreamedConnected = False
Connected = True
DBGrid に表示するようにしておく。
これで起動してみそ。
527 :
デフォルトの名無しさん :02/12/21 22:04
うちのInterBase6 は、以下のトリガーが、InterActiveSQLで動かない んですよー(ToT) トリガーが動かすときは、何か設定が必要なんすか? 偉い人、おしえてん。 CREATE TABLE first_table ( field_X INTEGER, field_1 INTEGER, field_2 INTEGER, field_3 INTEGER, ); CREATE GENERATOR first_table_id; SET TERM !! ; CREATE TRIGGER first_table_unique_id FOR first_table BEFORE INSERT POSITION 0 AS BEGIN new.field_X = gen_id ( first_table_id, 1 ); END; SET TERM ;!!
ところで InterActiveSQL って何?
InterActiveSQL InterBaseに対して,SQLコマンドを対話型で入力できる 略してISQL
>>529 それをいうなら "InterActive" じゃなくて "Interactive" だよ。
InterActiveSQL とかいう言語があるのかと思ったよ。
「ISQLでトリガーを使う」という状況がよー分かりましぇん トリガーってアプリ/サービスに対してデータベースの変更を通知するのに 使うものだと思ってたけど
>>531 それはイベント(post_event)のことでは。
トリガとは違うぞ。
>>527 どう動かない?
Firebird と InterBase の違いは?
create generator gen_aid; create trigger set_aid for tb_test before insert as begin new.aid = gen_id(gen_aid,1); end; なんかをISQLで読み込ませると、 Unsuccessful metadata update DEFINE GENERATOR failed attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_11" Statement: create generator gen_aid なんてエラーが出る。
ISQLでトリガーの部分が全然実行できないんす。 なぜかなー。わからん。
>>534 Firebird はバグの固まり。だけどソース付きなので修正できる。
InterBase は有料。
table1とtable2をunionで結合させたいのですが Fieldの無い部分をNullで補うとうまくいきません Oracleでは下の記述は通るのですが FireBirdでは通りません select code fcode, dateymd fdate from table1 union select code fcode, (null) fdate from table2 ; どなたかわかるかた おねがいします
>>538 列が同じ型でないとUNIONで結合はできませんでつ。
oracleみたいに、Nullで空のフィールドにすることは 出来ないのですね とても勉強になりました
541 :
デフォルトの名無しさん :02/12/24 22:23
>>538 cast(null as データ型) でどうだ?
データ型にはドメインは指定できないみたいだから、
組み込みデータ型で指定すること。
おおお!!!! 出来ました!出来ました!! なるほど、、キャストかぁ〜 Unionの表現の幅が広がって 今まで以上にFireBirdを使えそうです ありがとうございました
ひろゆきは帰った?wwwww
要するに、管理人がアフォということと、 一部の信者はキチってことの二言に尽きますな 法律を少しでも勉強した者、 もっと言えば人並みの常識を備えた人ならば、 今回の敗訴は目に見えていたもんね ネットなら何書いてもいいなんて暴論が罷り通るほど、 社会は冷徹でもバカでもないってことですな やっぱ権利は濫用しちゃいけませんな
んvbんv
どこよ。
548 :
デフォルトの名無しさん :03/01/09 14:43
>>264 合法的なのを目指すなら、削除システムを実装するだけ。
アングラなのを目指すなら、流動的なDAT分散機能をつける。
======2==C==H======================================================
2ちゃんねるのお勧めな話題と
ネットでの面白い出来事を配送したいと思ってます。。。
===============================読者数: 138720人 発行日:2003/1/9
年末年始ボケがそろそろ収まり始めた今日このごろのひろゆきです。
そんなわけで、年末に予告したIP記録ですが実験を開始しています。
「2ちゃんねる20030107」
こんな感じで各掲示板の最下部に日付が入ってるんですが、
20030107以降になってるところはログ記録実験中ですー。
んじゃ!
────────────────────────Age2ch─
■この書き込みは、Age2chを使って配信されています。
────────────────────────────
Keep your thread alive !
http://pc3.2ch.net/test/read.cgi/software/1041952901/l50 ────────────────────────────
すんげーくさいウンコ出た。 この匂いを共有したい。
>>589 ちょっと違うが今までがそんな感じだったんよ。
「(善意であろうが悪意であろうが)確認できない以上利用者が真偽を判断すべきであり、
要請があっただけで全て削除するべきではない。」
というのがひろゆきの主張。
嘘を嘘と〜の名言もこれに繋がる。
これに対して動物病院訴訟における地裁・高裁の判断は、
「外部から確認できない以上当事者が中傷だと主張し削除の要請をした場合は、管理人は削除すべき。」
今後はこれに倣い当事者側が中傷だと主張さえすればIP公開する必要が出るかもしれない。
(もちろん警察なり裁判所の正式な提出要請があってからになるだろうけど)
なお、書き込んだ者はその書き込みに対し責任を負うべし、ってのは賛成だが。
いずれにしろ善意の告発は難しくなると思われ。
>>196 その登場はずるい・・・ヽ(`Д´)ノウワァァン
上告か、
大好きな彼とはじめてやろうとしたとき、やっぱ立たなくて、
インポなのかと、ほんとまじで悩んだYO
でもフェラしてあげると、立たないのにすごい気持ちよがって、
「入れたいよ〜」って言ってたけど、立たないから無理だった。
「一人で出していい?」って言われたけど
「一人でいっちゃダメ!!」っていってから、その日はあきらめたんだけど、
その言葉が良かったらしくて、次に会ったときは、舐めなくてもギンギンに立ってました(笑)
なんかその日以来、オナニーもせずずっと我慢してたんだそうな・・・
http://freehost.kakiko.com/hangyaku
IP記録をしなければ、695が病院の悪口を書き込んでひろゆきの裁判を増やしてくれるわけだな。
ウラの取れてない内部告発はもう出来ないというわけか?
スレ救出隊って、「スレを削除されないように活動する人たち」って 意味でしょうか?
IP記録自体は以前から一部でやってたんだが、今回のはどうも違うシステムらしいな。 SETTING.TXTから分離して処理してる様なんだが。
2chのIDてIPを変換してるんだっけ? だったら、全板強制IDにして暗号キーだけ保存しておけばいいんじゃないの?
2ちゃんねるは、新手の総会屋なんだよ!
ボルタレンじゃなくて??
誰か IDにIPを出すことを要求します ってスレ立てておながい
======2==C==H======================================================
2ちゃんねるのお勧めな話題と
ネットでの面白い出来事を配送したいと思ってます。。。
===============================読者数: 139038人 発行日:2003/1/10
なにやら、連日メルマガだしてるひろゆきです。
そんなわけで、ログ記録実験ですが、いちいちサーバ指定するのが面倒なので、
全部のサーバに入れてみました。
重くなって落ちたりしてもご愛嬌ってことで。。。
んじゃ!
────────────────────────Age2ch─
■この書き込みは、Age2chを使って配信されています。
────────────────────────────
Keep your thread alive !
http://pc3.2ch.net/test/read.cgi/software/1041952901/l50 ────────────────────────────
で、相当な言論規制がされたわけだが。
てゆうか晒されて困るなんて根性なしは荒らすなってだけで、 荒らすヤツは荒らすし、白化も黒化も結局いるわけだ。 素人にはお勧めできなくなったってこったな。
(´-`).。oO(早く潰れろ屑掲示板…っと)
国内サッカー板 また落ちてます?
ロケット団ハッケソ
やすゆきも小心者だからね
最後は、4桁だったみたいだね
つうか全員逮捕だおまいら
どうせ敗訴しても400万円を2ちゃんねらーのみなさんがカンパするんでしょ?
マジでIPってなんですか?
だからひろゆきもまともな2ちゃんのみんなも「不当判決だ」って怒ってるわけなのだが(^_^;)
どうしても 倉庫番 ★≠BG ★≠夜勤 ★ ということにしておきたいみたいだけど、バレバレで萎えるw
(^^)
はぁぁぁ。あと、1週間以内で生理・・・。 何事にもむかついてたまらないっ! 生理前って、ブルーになったり、いらいらしたり。。。 ほんと勘弁してって感じ。
580 :
デフォルトの名無しさん :03/01/14 00:52
保守age染ます
(^^)
こんにちは 質問させて下さい いつも同じレコードで 下記のようなエラーがでるけどどうしてでしょう? ISC ERROR CODE:335544321 ISC ERROR MESSAGE: arithmetic exception, numeric overflow, or string truncation Cannot transliterate character between character sets データが壊れてる?
>>582 キャラクタセット指定してないからでは?
ってかどういう環境でやってるのか提示せよ。
プロシージャ内のデータ抽出で起こり なんとか解決できました 原因は文字の連結を ||ではなく+でやっていいたことによるものでした ご迷惑おかけしてすみません プロシージャを書いてて思ったのですが OracleのSubStrような機能はないのでしょうか?
InterBaseの場合、その手の関数はUDF(ユーザ定義関数)として実装 されているのです。 Windows版の場合なら、ib_udf.dllというファイルがIBを入れたディレクトリ のどこかにある筈です。これの中に拡張関数が入っていて、開発者側 で使いたいものだけDBに登録して使用します。 DBへの登録方法などはIBのドキュメントに載っています。 関数の仕様に多少の制限はありますけど、substrやstrlenなど ある程度は揃っています。
ありました 登録も付属のsqlファイルで出来ました ありがとう
InterBase(FireBrid)のストアドで 配列を使いたいのだけど ヘルプを見た限りではのっていないような・・・? もし出来たら宣言の方法などもふまえて 教えていただけないでしょうか?
>>587 SQL文での配列操作はできなかったはずだけど。
配列使うならAPI使うしかないよ。
Marathonで配列が簡単に作れるから アクセス方法も簡単だと思ってました API...今の私には敷居が高そうです(^_^; (FireBirdでストアドのパッケージが使るようにならないかなぁ〜)
selectで選択したレコードを 新規のテーブルに割り当てたいけど Oracleの create table newtable as (select * from oldtable where field <> 0); みたいなSQLはFireBirdではどう書くのでしょう?
591 :
デフォルトの名無しさん :03/01/23 17:22
>>590 >Oracleの
>create table newtable as (select * from oldtable where field <> 0);
それに相当するような機能はないよ。
やるとしたら、oldtable と同じ構成の newtable を作ってから、
insert into newtable select * from oldtable where field <> 0;
でやるしかないだろうね。
(^^)
月始のDateや月末のDateを返す UDFってどこかにないものでしょうか?
594 :
デフォルトの名無しさん :03/01/29 01:59
>>593 そんなのないと思う。
月末の割り出し方ならとりあえず、
cast('2003/2/1' as Date)-1
のようにすれば簡単。(この場合、2003/1/31 となる)
年と月の比較なら次のような手もある。
select * from hoge
where
extract(year from date_field)=2003 and
extract(month from date_field)=1
(date_field が 2003年1月のものを抽出)
ただし、"extract" って IB で使えるかどうか知らない。(FirebirdならOK)
なるほど 月末をもとめるときは そのようなやり方をするのですね! 目から鱗です extract... これも有効に使わせて頂きます! (実は年間の売上を求めるストアド作成中で 早速extractを使いたいと思います) それともう一つ二つ質問させて下さい 今、FireBirdのHPをみて1.5のβが出てるようなのですが 何が変わっているのでしょう? また、現在Zipで配布されているようで 今使用しているFireBird(1.02)に上書きしてインストールする のでしょうか?
593です ExtractをFireBird1.02でためしたところ ERROR: expression evaluation not supported とエラーが出てデータの抽出が行えません 何か設定を見逃しているのでしょうか?
597 :
デフォルトの名無しさん :03/01/29 16:56
>>596 オレも FB1.02 だけど問題ないけど。(Win2000)
エラーが出たときのSQLステートメントは?
とりあえず isql で以下でテストしてみるとか。
select extract(year from cast('now' as date)) from rdb$database;
EXTRACT出来ました 原因はInterBaseでデータベースを作成したためでした バックアップをとって、その後FireBird1.02でデータベースを作成 そしてリカバリしてデータを復元したら出来るようになりました すみません、お騒がせしてしまって・・・ そういえばFireBirdって どのPlanを使用するか決めることが出来るのですね こんな感じで CREATE INDEX employee_hire_date_month_idx ON employee COMPUTED BY (EXTRACT(MONTH FROM hire_date)) SELECT * FROM employee WHERE EXTRACT(MONTH FROM hire_date) = 1 PLAN (EMPLOYEE INDEX (EMPLOYEE_HIRE_DATE_MONTH_IDX)) Webを巡回して今更気づきました(^_^;
599 :
デフォルトの名無しさん :03/02/05 09:41
FireBirdってcaseは使える? どこかで使えるっていうのを見たのですが 思い出せずやってみたのですが出来なくて。。。 過去ログにextract等の関数をまとめたサイト、 もしあれば教えて頂けないでしょうか?
過去ログにextract等の関数をまとめたサイト、 ↓訂正 過去ログにextract等の関数があがっていますが このような関数ををまとめたサイト、 すみません
601 :
デフォルトの名無しさん :03/02/10 11:53
こんにちは。 timestamp型のデータフィールドに対して、yyyy/mm/ddのフォーマットで 抽出はかけられないでしょうか? select * from hoge where cast(hogedate as date) = '2002/04/10' でいけるかなと思ったんですけどムリでした。 ↓こういうのならできるんですけど。 select * from hoge where cast(hogedate as char(10)) = '6-AUG-2002' 御教授おながいします。
>>601 cast('2002/04/10' as date)
でいいのでは?
>>602 select * from hoge where hogedate = cast('2002/04/10' as date)
はダメで
select * from hoge where cast(hogedate as date) = cast('2002/04/10' as date)
もダメです
select cast(hogedate as date) from hoge
をしてみると結局タイムスタンプ型で帰ってきちゃうんですよ
使用しているのはIB6ですが
>>603 試したが IB じゃダメみたいだね。FB ならいいんだけど。
だけど cast('4/10/2002' as date) なら OK だったから
これでやるしかないんじゃないかな。ダメ?
この形式なら FB でも OK だから
もし今後 FB に移行する際には修正しなくていいからね。
>>602 ,604
ありがd
でも、うまくいかないです。
604は↓ですよね?
select * from hoge where cast(hogedate as date) = cast('6/08/2002' as date)
>>605 IB5 だと OK だったけど。IB6 はダメなんだ? 何で???
>select * from hoge where cast(hogedate as date) = cast('6/08/2002' as date)
大して変わらないと思うけどこっちでは
select cast('4/10/2002' as date) from rdb$database;
で確認。
↑ isql で確認。
やっぱりダメです。ちなみに今まではBDE経由でやっていて、 ISQLで試してみたんですが、Conversion error from string "13/07/2002" とかでちゃいました!'2002/07/13'とすればNullが返ってくる、そんなところです。 とりあえず、(hogedate as char(10)) = '6-AUG-2002')でやろうかなと思ってます。 付き合ってくれた人ありがとでした。
>>608 >ISQLで試してみたんですが、Conversion error from string "13/07/2002"
そりゃそうだよ。これだと 2002年13月7日ということだから。
もう一度 isql で 7/13/2002 で試してみ。
見落としてました。。 でも Nullですた。
611 :
デフォルトの名無しさん :03/02/10 19:58
>>610 スマソ、今テスト環境がないからクソレスかもしれんが、
'2002-07-13'
だとどうよ?
>>610 >Nullですた。
>>608 >とかでちゃいました!'2002/07/13'とすればNullが返ってくる、そんなところです。
Null ってことは日付形式がダメなんじゃなくて、
cast(hogedate as date) = cast('6/08/2002' as date)
が一致してないってことなんだ?
であれば、形式は "年/月/日", "月/日/年" でもいいじゃん。
一致しないのは別の問題では。
613 :
デフォルトの名無しさん :03/02/12 17:09
どなたかご教授ください UNION句を使って 複数のテーブルを結合したいのですが OREDER BY 〜 の指定がうまくいきません SELECT A_DATE YMD, A_KIN KINGAKU FROM A_TABLE UNION SELECT B_DATE YMD, B_KIN KINGAKU FROM B_TABLE ORDER BY KINGAKU, YMD /*ERR*/ としたいのですが、うまくいかないのです FIREBIRDではUNION句でのソートは認められないのでしょうか?
日付周辺の仕様ってDialect関係あるんじゃなかったっけ? FBでOKってことはDialect3?
下げてどうする
すんません、InterBase5.6について聞きたいんですが IBのデータベースを作ってそこに約40GBのテストデータを 入れてみるというテストをしているのですが、約2GBくらい入れたところで 毎回処理が止まってしまいます。 IB5.6っていうのは2GB以上のデータというのは流し込めないのでしょうか? 環境としては Redhat6.2 InterBase5.6 を使ってるのですが、もしかしてLinuxが悪さしてるとかってことも あるんでしょうか? 質問ばかりですいませんが分かりましたら是非ご教授お願いします
617 :
デフォルトの名無しさん :03/02/15 23:13
>>616 Linuxってたしか2.4系のカーネルじゃないと2GB以上のファイルって
扱えないんじゃなかったっけ?
Redhat6.2ってカーネルいくつ?
618 :
デフォルトの名無しさん :03/02/15 23:13
ちなみにInterbaseにデータベースのサイズ制限は無かったと思う。
619 :
デフォルトの名無しさん :03/02/15 23:27
そうなだ。
ほかのディストリビューションにした方がええ。 Red Hat 6.2 はこの3月でアップデート終了だ。
>>617-620 レスありがとうございます。
どうやら調べたらカーネルが2.2くらいだったので変更しなきゃだめなんすね
ほんとすいませんでした
後上乗せで申し訳ないのですが5.6から6に変わったときの変更点って
どこにのってるんでしょうか?
JapanのボーランドのHPには特徴って部分でちょこっとだけ載ってましたが
あんだけなんでしょうか?
もし載ってるサイト等ご存知でしたら是非そこもお願いします
622 :
デフォルトの名無しさん :03/02/17 14:10
>>621 移行するのであれば Firebird にしたらどう?
客の指定なら仕方がないけど、自由に選べるのなら Firebird をお勧めします。
T.Maki さん、行方不明 死亡か?
>>624 メール送っても返事が無い。だれか詳細を...
627 :
デフォルトの名無しさん :03/02/21 11:42
おそれいりますが、 Firebird と mySQL とのパフォーマンスを比較した方はいないでしょうか おおよそで結構ですので、お教えいただけると ありがたいのですが。
>>627 ここはInterBaseのスレなんですけど。
誰かInterBase 7使用したやつ情報希望。 米国のサイトで英語版の体験版が落とせるらしいが・・・・
InterBase 7ってDelphi7 Studioにも付いて来るじゃなかった? 俺はバージョンアップに付き合いきれんのでDelphi5のまま。 SMP対応らしいからPen4 3.06Gで動かしたときの様子が知りたいね。
行ロックをかけたいのだが Oracleの for update (nowait) のようなものはない? イベントアラーター使わんと駄目なのかな? って、ストアドとトリガーしか使えなかったね イベントアラーター・・・ う〜ん・・・
>>631 OracleのようなSELECT FOR UPDATEは無いがロックしたい行が特定出来るなら
UPDATE SET FIELD1 = FIELD1 WHERE xxxxxx
と最初にする事で明示的にレコードロックはかけられる。
イベントアラータ使ってマニアックに実装するよりこちらが吉。
>>632 なるほどその手があったか!
早速試してみます
返信ありがとう
634 :
デフォルトの名無しさん :03/03/03 15:25
先生方、お願いします。 Date型(TimeStamp)のエンコード、デコードって出来ます? MarathonのSQL Code Snippets のストアドで 出来そうな気がしたので それらしきストアドをコピペでコンパイルしたけど 'そんなストアドないよ'見たいなエラーで出来ませんでした そのデコードを使ってやりたいことは TimeStamp型のMonthをインクリメントしたいのですが 他にいい方法がありますか? Dayのインクリメント、デクリメントは直接出来るようですが・・・
635 :
デフォルトの名無しさん :03/03/03 17:08
質問です。 トランザクションをコミットする方法にCOMMITとCOMMIT RETAINがあるのですが 結果セットを維持する必要があるとき以外はCOMMITを使用し、維持する必要の あるときのみCOMMIT RETAINを使用するべきでしょうか? 例えばSELECTを発行し、その内容を使用して処理を行うというありふれた場合でも 1.SELECT発行 → 処理 → COMMIT とする方法と 2.SELECT発行 → COMMIT RETAIN → 処理 とする方法の二つがあると思うのですが、どちらがより望ましい方法なのでしょうか? 効率、保守性等も含め、アドバイスお願いします。
select で 100件 抽出できるテーブルから、 何らかのソートをかけて、 上位 10件だけを 抽出するには どうしたらいいでしょうか? をしえて君ですみませぬ。
SQL Server でいうところの SET ROWCOUNT みたいなやつです。
>>638 レスありがとうございます。
しかし 当方、 IB5.6 でございまして・・・・ (わーーーん)
>>639 思い切って Firebird に移行したらどう?
(ちなみにオレも IB から Firebird に移行している。仕事でも使ってるし。)
IB5.6 の DB ファイルそのまま扱えるし、機能的にも IB5.6 より上だし。
(商用)IBのような同時接続の制限もないからいいと思うが。
FireBird だけは止めたほうがいいよ。 限定的にしか動かないし、IB に対する拡張部分はバグが多いし。 ソースをメンテナンスするだけの余力がある人だけが使うべき。 やりたいのは IB/FireBird を使うことなのか?それとも DB を使ったアプリを作ることなのか? 前者なら FireBird でも良いけど、後者なら黙って IB をアップデートするか 他社の(サポートつき)DB を買いなさい。 タダが一番高いんだよ。
>>641 某日社員?
俺 Firebird 使ってるけど安定して使えてるが。(Win版)
もちろん客先にも導入してもらってる。
>FireBird だけは止めたほうがいいよ。
使えるか使えないかは普通テストして決めるだろ?
使えそうなら使ってみればいい。
Firebird に移行した後でも、使ってく中で、致命的なバグを発見したとかでやっぱ
Firebird はダメだと思ったらそのときにはまた InterBase に切り替えればいい。
互換性が高いんだから、そのまま、もしくは少しの修正で移行できる。
>限定的にしか動かないし、IB に対する拡張部分はバグが多いし。
大分 Fix されてるようだし、バグってる機能使わなきゃいいだろ。
> 他社の(サポートつき)DB を買いなさい。
高いサポート料支払っても問題解決しないから結局は自己責任なんだよ。
>>642 禿同。
つか、ソースがあれば最悪でもどうにかしようがあるから漏れはFBにした。
IBも選択肢に入ってたんだけど、10年ぐらい使い倒しそうなシステムの開発で、
10年後に某がくたばってる可能性を考慮するとオプソ優位の判断になっちゃったんだよね。
644 :
デフォルトの名無しさん :03/03/06 16:21
>>641 > 限定的にしか動かないし、IB に対する拡張部分はバグが多いし。
具体的に書けなきゃただのアホウだな。
645 :
デフォルトの名無しさん :03/03/06 16:39
OracleのObjectBrowserみたいな、DB管理ソフトってないですかね?
646 :
デフォルトの名無しさん :03/03/06 16:58
>>645 IBExpert
www.ibexpert.com
DelのMLでもFirebirdの質問(この板でやってたのの同じやつだけど)が出てたね 徐々に認知度が上がってるのかな 使う人が増えればそれだけ情報も集まるし信頼性も上がるよね (バグやその回避策も分かるようになるだろうから) ここで標語 『Firebird みんなで使えば 怖くない』
質問なんですが ストアドプロシージャでドメイン使える? それっぽい構文で いろいろ試したけど無理だったので・・・ 出来たら最高なんだけどなぁ〜
>>649 使えないよ。
ドメイン使ってるテーブルのフィールドと同じ型の渡したり、返したりできないと不便だよね。
ドメイン修正したら関連しているストアドも修正しなきゃならんから。
>>650 やっぱり駄目か〜
そのうち独自の拡張で
ストアド・トリガーでドメインOK!!
ドメインを変更した時、
それを使用しているストアドやトリガーをリコンパイル!!
してくれればいいな・・・
652 :
デフォルトの名無しさん :03/03/10 19:05
>>645 >>646 IBExpert日本語化されるらしいよ。
どうやらヘルプも日本語になるみたい。
653 :
デフォルトの名無しさん :03/03/10 22:50
>>652 まじですかい!!
フリーの奴も?
IBConsole→Marathon→IBQueryと渡り歩いてIBExpertに
落ち着いている身にとっては朗報です。情報さんくす!!
今Marathon使ってるのだが IBExpertにしかない機能等はあるの? Marathon、全然アップデートしないから もし使いやすかったらIBExpertの購入も検討したいのだが・・・
すいません初歩的なことなのかもしれなませんが InterBaseのSQL命令で SELECT * FROM ( SELECT DATE1 FROM DATA_TABLE UNION ALL SELECT DATA2 FROM DATA_TABLE ); みたいにFROMのなかでSELECTって書くことできないのでしょうか? 初歩的ですいませんが是非ご教授お願いします
>>656 ビューやストアドを使えばうまく行くけどねー
>>656 そのまんまなら
SELECT DATE1 ADATE FROM DATA_TABLE
UNION ALL
SELECT DATE2 ADATE FROM DATA_TABLE;
でいいんだけどー
ここにいる経験豊富な方よ 教えておくれ Firebird1.0でドメインのキャラクタセットをnoneから 他のものに変更したいのだけど MarathonやらIBExpertやらではうまくいませぬ これって仕様?
660 :
デフォルトの名無しさん :03/03/14 16:43
>>659 今IBExpertでやってみたけど、
キャラクタセットが選択可能で、一見できそうなんだけど、
コンパイルしたらダメだった…・
よく見たら、ALTER DOMAINではデフォルト値の削除や変更、
チェック制約の削除や変更、ドメイン名、データタイプの変更が
できるようだけど、キャラクタセットの変更はサポートされていないみたい。
ドメインを削除して、再定義するしかないのかもしれないけど、
どっかのテーブルでそのドメインが使用されていたら、削除できないので
かなり厄介(テーブルを削除しなければならない?)。
なんかいい方法はないのかな?
>>654 652は宣伝じゃないだろ。URLも貼ってないし、価格もその他の情報も
一切記述していない。
大方また聞きか、直接問い合わせたんじゃないのか?
ソースはらなきゃ
>>660 むぅー
やはり無理でしたか・・・
IBExpert, Marathonで選択可能ということは
FireBird1.5では拡張されて変更出来るのだろうか?
すまそ。 教えてたもぉー ストアドの中でトリガーの有効、無効を切り替えたいのですが ALTER TRIGER HOEHOE INACTIVE; って書き込んでコンパイルすると 「ぼけぇー、うざいんじゃワレ!!そんなの書き込んでも無駄無駄ぁー ALTERなんて言葉、シラネーヨ!ぺっ!!」 というような警告が出ます クライアントでストアド呼び出す前後にオンオフ するしかないのでしょうか?
OLEDBでVBから使ってみてるんだけど、OLEDB経由だとしこたま遅い? FireBird1.0つかってんだけど。 テーブル取得(SELECT * FROM TABLE)するのにSQLServerで1秒ちょっとで終る処理が、 同構成のテーブルで26秒くらいかかる。。
>>664 FireBird 使わなきゃいいだろ?
666 :
デフォルトの名無しさん :03/03/19 14:19
>>664 WinXP の場合は遅くなるらしい。(WinMe も?)
データベースファイルの拡張子を GDB 以外にするなどの対策が必要とのこと。
www.microsoft.com/japan/msdn/windows/windowsxp/windowsxpsystemrestore.asp これに "GDB" 拡張子が含まれているみたい。
668 :
デフォルトの名無しさん :03/03/20 11:40
教えて下さい データーベースのCharSetをShiftJIS ID(Code)などの二バイト文字を使用しない ドメインのCharSetをASCII 二バイト文字を使用する ドメインのCharSetをShiftJIS このような設定でこれから設計していこうと思っています しかし、CharSetの中にUNICODE_FSSがあり もしかして全てこれに統一出来るのかな?と思っています 皆さんは今のシステム、CharSetをどのように定義していますか?
>>666 フム、情報あんがと。どっかに載ってる情報なのかな。
IBOleDb使ってるんだけどどっかドキュメント読み飛ばしてたかな。。
>>664 666に関連することだけど、XPとMeの場合、ファイルを復元する機能があるため、
これを無効にしてしまえばよいです。
マイコンピュータ - 右クリックでプロパティ - ファイルの復元タブ
で、ファイルの復元機能のチェックをはずす(手元にXPがないので、逆に復元機能を
有効にするのチェックかもしれない。いずれにせよ、デフォルトの状態では復元が
有効になっているので、デフォルトではないようにすること。スマンコ)と、
復元が無効になってスピードがアップする(かもしれない)。
関係ないが「しこたま」って、やっぱり方言なのかなぁ?
漏れも使ったことあるし、ゲゲッてみたら秋田、山口、熊本などいろんなところでの
方言で、あまり地域性がないみたい。
「漏れも使ったことあるし、ゲゲッてみたら」 →「…ググッてみたら」 情けない。煎ってきます。
673 :
デフォルトの名無しさん :03/03/25 20:01
FireBirdを触ってみようという程度の興味から、Twise Lab から日本語化 されたv1.0 を落としてインストールをしたのですが、IBGuardの起動や IBConsoleでの接続後にログを見ると、 「レジストリ情報が不足しています。 設定を確認してください。 」 というメッセージが出てきます。これにはどう対処したら良いのでしょうか? Windows2000(SP3) WI-T6.2.796 FireBird1.0
コンナトコマデシュッチョウシテンジャネエヨ
( ・∀・) | | ガッ
と ) | |
Y /ノ 人
/ ) < >__Λ∩
_/し' //. V`Д´)/
(_フ彡 / ←
>>671-672
ぐぐってみました Interbase SQL Access97 Lotus123
InterBase(火の鳥)って表を結合すると オラクルと比べてものすごく時間かかるね。 planとか見てもindexは使ってるようだし むぅ・・・ パフォーマンスを上げるために ストアドで処理したりしてるけど 他のみんなはどうしてる? それともオラクルよりも遅いのは私だけ?
>オラクルと比べてものすごく時間かかるね。 ものすごくってどの程度のこと? ほかの人にも言えることだけど、そもそもオラクル持ってるのに 何でわざわざ InterBase 使ってるの? オラクルの方がパフォーマンスがいいならオラクルにしとけばいいじゃん。
>>676 どんな条件下でどんなテーブルをどういうふうに結合したのか何も書かずに
>オラクルと比べてものすごく時間かかるね。
こんな結論出されても
(゚Д゚)ハァ?
としか言えないわけで。
そもそも、ストアド化したところでテーブルの結合自体にかかる速度は
変わるはず無いじゃん。
なんでそんなにキツい言い方をするかな...
Firebirdだとコストがかからないので、十分乗り換え理由になると思うが。
>>676 用途にもよるけど、パフォーマンスをOracleと比べられると厳しいかも。
680 :
デフォルトの名無しさん :03/04/05 16:18
D7のIBQueryを使っていますが、TIMESTAMP型を含むレコードを 挿入するにはどういうSQLを書けばいいのでしょうか? 以前BDEを使っていた時は TQuery.SQLに INSERT INTO hoge VALUES (:FDATE) をAddして TQuery.Params.Items[0].AsDateTime := TDateTime型変数 とやれば良かったのですが。
TIBQuery.ParamByName('DateField').AsDateTime := TDateTime;
682 :
デフォルトの名無しさん :03/04/09 16:01
683 :
デフォルトの名無しさん :03/04/14 17:46
Delphiでの開発の入門書としてよく薦められる「データベースLinux―InterBase 4.0 for Linux」 ですが、IBXを使用した例が詳しく載ってますでしょうか? ほとんどの書籍がBDEなので、、、
>>683 続編の「データベースLinux―Java ServletによるWebサーバー構築 編」
に実質9ページ程載ってるだけ
「Firebird オープンソースデータベースの導入と運用の実際」
の方は18ページ載ってるけど
サンプルソースにかなりのページを割いているので
情報量が倍もあるかどうかは読む人によるかと
>>684 レスありがとうございます。
そうですか、大受氏の本と同程度ですか。
大受氏のほうは持っているのですが、一つの例が申し訳程度に載っているだけなので。
ヘルプと英文しかないですかね?
(^^)
688 :
デフォルトの名無しさん :03/04/18 14:43
JSPとSERVLETでWEBアプリケーションを作っているのですが 1件のデータ(更新クエリ30〜40件)を登録すると メモリを200K〜300K程喰ってしまいすぐに限界がきます。 UPDATEやINSERTを行うと膨大なメモリを喰うのは InterBaseの仕様でしょうか。それともプログラムが悪いのか・・・ もしこれが仕様ならば解決策はあるのでしょうか?
ちなみにInterBase5.6使ってます。
>>688 問題があるとしたら Java 側(JDBC)だろ。
まずは環境やそのコード等を書くべし。
∧_∧ ( ^^ )< ぬるぽ(^^)
∧_∧ ( ^^ )< ぬるぽ(^^)
すいません、レスが遅くなってしまいました。 その後調べてみましたがさっぱりわかりませんでしたので ソースコード書きたいのですが、結構長くなってしまいますが 検証してもらえますでしょうか・・・お願いします
694 :
デフォルトの名無しさん :03/04/24 23:20
>>693 >ソースコード書きたいのですが、結構長くなってしまいますが
分割してレスしなよ。
ありがとうございます 恐らく3〜4レス分になりますがお願いします import java.io.*; import java.util.*; import javax.servlet.*; import javax.servlet.http.*; public class Test_DB extends HttpServlet{ private static final Stack connStack = new Stack() ; private static java.sql.Driver driver = null; private static java.sql.Connection conn = null; private static java.sql.Statement stmt = null; private static java.sql.ResultSet rs = null; public void doGet( HttpServletRequest request, HttpServletResponse response ) throws IOException, ServletException { PrintWriter out = getWriter( response ); HttpSession session = request.getSession( true ); String str = ""; String [] strArray = new String[0]; try { connect(); stmt = conn.createStatement(); for ( int i = 0; i < 500; i++ ) { stmt.executeUpdate( "INSERT INTO TBL VALUES( '"+ i +"', 〜〜以下80項目分〜〜, '"+ i +"' )" ); } rs = stmt.executeQuery( "SELECT STR FROM TBL;" );
Vector vec = new Vector(); while( rs.next() ) { vec.addElement(rs.getString( "STR" ) ); } strArray = (String[])vec.toArray( new String[0] ); commit(); close(); } catch ( Exception e ) { e.printStackTrace(); } for ( int i = 0; i < str.length; i++ ) { out.println( strArray[i] ); } out.close(); } public void doPost( HttpServletRequest request, HttpServletResponse response ) throws IOException, ServletException { doGet( request, response ); } //----- PrintWriter をHTML表示用にSHIFT-JIS に合わせる-----// public PrintWriter getWriter( HttpServletResponse response ) throws IOException { response.setContentType( "text/html; charset=Shift_JIS" ); return new PrintWriter( new OutputStreamWriter( response.getOutputStream(), "Shift_JIS" ) ); }
public static void connect() throws Exception { try { synchronized ( connStack ) { if ( connect_flag != true ) { // JDBCドライバの読み込み Class.forName( "interbase.interclient.Driver" ); driver = new interbase.interclient.Driver(); java.util.Properties prop = new java.util.Properties(); prop.put( "user", "SYSDBA" ); prop.put( "password", "masterkey" ); String url = "jdbc:interbase://localhost/data/TEST_DB.GDB"; conn = java.sql.DriverManager.getConnection( url, prop ); // 自動Commit処理をさせない conn.setAutoCommit( false ); } } } catch ( Exception e ) { throw e; } }
// DB更新処理 public static void commit() throws Exception { try { conn.commit(); } catch ( Exception e ) { throw e; } } // DB巻き戻し処理 public static void rollback() throws Exception { try { conn.rollback(); } catch ( Exception e ) { throw e; } } // DB接続解除処理 public static void close() throws Exception { try { conn.close(); } catch ( Exception e ) { throw e; } } }
以上上の4つがソースになっていますが どこを変えればメモリの消費など抑えられるか 等御分かりいただけましたら是非お願いします
すいません。 補足ですが688-1でかいた for分500回回してるところが実際人数分 処理を行うところです
>688-1 >stmt = conn.createStatement(); conn.prepareStatement(sql); 使った方がいいよ。 >688-2 接続close前に、 rs.close() と stmt.close() を入れるべき。 >688-3 >driver = new interbase.interclient.Driver(); これは必要ない。 これで試してみて結果報告してね。
702 :
デフォルトの名無しさん :03/04/27 03:19
レプリケーターって何するものなの?
703 :
デフォルトの名無しさん :03/04/27 03:56
vc .netとかで簡単にソリューション内の全ファイル行数を チェックするにはどうすれば? マクロか?
704 :
デフォルトの名無しさん :03/04/27 03:56
ライセンスについて教えてください。 1:フリーウエアと一緒に配布する場合 2:商用アプリケーションと一緒に配布する場合 3:インターネット上のサーバーで使用する場合 これらのときでも、自由に使えるのでしょうか?
>701 レスありがとうございます。 ・rs.close() と stmt.close() ・driver = new interbase.interclient.Driver(); の部分は修正しましたが改善されませんでした。 prepareStatement(sql)に関しては、こちらの例が悪かったです。 分かり易くするために簡単なクエリにしましたが、 実際に実行する複数のクエリは、 格納するテーブルも値もバラバラなので prepare〜はどうも使えそうにありません。
>>705 スレ違い…ここはFirebirdスレじゃない
それと…マルチ反対
━―━―━―━―━―━―━―━―━[JR山崎駅(^^)]━―━―━―━―━―━―━―━―━―
709 :
デフォルトの名無しさん :03/05/28 08:35
無料のODBCドライバないでつか? FirebirdのODBCドライバはバイナリ対応してないものばかりで。
∧_∧ ピュ.ー ( ^^ ) <これからも僕を応援して下さいね(^^)。 =〔~∪ ̄ ̄〕 = ◎――◎ 山崎渉
711 :
デフォルトの名無しさん :03/05/28 17:09
Hあげ
712 :
動画直リン :03/05/28 17:13
InterBaseか、Firebirdのようにオープンソースじゃないのに それでも使う?
InterBaseのバージョンによる違いを一言で教えてくれ。 5.6 , 6 , 6.5 , 7 について 5.6は現在使用中だ。
一言か・・・DBエンジンが違う。
716 :
デフォルトの名無しさん :03/06/19 19:04
プレス・リリース ボーランド?InterBase?7.1 マイクロソフトのサポートを広げる?.NETフレームワーク ボーランド?マイクロソフトを支援するデータ・ベース・ソルーション?ウインドウズ・サーバー2003 スコッツヴァリー(カリフォルニア)。― 2003年6月17日: ボーランドSoftware株式会社 (ナズダックNM: BORL)は今日ボーランドを紹介しました?InterBase?7.1、マイクロソフト のサポートを備えた高機能およびクロス・プラットフォームのembeddableなデータ・ベース ウインドウズ・サーバー2003。この最新のボーランド・データ・ベース提供は、マイクロ ソフトのための開発をサポートする会社のコミットメントを強調します?.NETフレームワーク、 また設計から配備まで企業にアプリケーション・ライフ?Eサイクル全体の全体にわたる選択 の自由を供給します。 「重要な実行および生産力アップグレードの提供に加えて、InterBase 7.1は マイクロソフト.NETフレームワーク開発のために開発者に代替データ・ベース を供給します」とジョン・アーサー(ボーランドのデータ・ベース解決策の管理者)が言いました。 「ボーランドはInterBase技術をサポートすることを約束?オます。また、この最新のバージョンは、 会社の.NETフレームワーク用のアプリケーション・ライフ・サイクル経営戦略を増強します。」
717 :
デフォルトの名無しさん :03/06/19 19:04
InterBase 7.1データ・ベースは容易な設置およびメンテナンスを可能にします。それは自動的な 衝突回復を提供し、分散アプリケーション内に埋め込むことに上手に適しています。InterBaseは さらに、多数のユーザとそれを?pォ能で、ビジネス重大なアプリケーションに対する大きな選択 にして、マルチプロセッサー・サポートおよび精巧なアーキテクチャーを提供します。InterBase はウインドウズ、Rをサポートします:Linux、?またSolaris?ボーランドDelphi?のような開発環境 と同様にプラットフォームも、ボーランドKylix?、マイクロソフト視覚的なスタジオ?また他のもの。 InterBaseコンソール実行モニター支援開発者および管理者への増強は、よりよくデータ・ベース・ サーバー・プロセスを理解します。マネージャーはデータ・ベース使用法および実行へよりよい 視界を持っています?ログイン情報および活動を含んでいること?またデータ・ベース・プロセスの コントロール。 完全に従順なJDBC2ドライバーを特色として、InterBase 7.1はボーランドJBuilderを使用すること を開発者にとってより容易にします?また他のJava?高機能適用を作成し展開させるために開発環境 を統合しました。InterBase 7.1はさらに超縫うように進み許可するインテルを支援します? プロセッサーを通って多数のスレッドを移動させるIV顧客。さらに、InterBase 7.1はInstallAnywhere を特色とします?、インストール・プロセスを単純化するグラフィックのインターフェース。
718 :
デフォルトの名無しさん :03/06/21 20:22
オープンソースのInterBase 6.01でテキストデータベース 作っおりまして、各アイテムを 【アイテム情報】 CREATE TABLE items ( id INTEGER NOT NULL, title VARCHAR(256) DEFAULT '新規テキスト', create_date TIMESTAMP DEFAULT NULL, modify_date TIMESTAMP DEFAULT NULL, PRIMARY KEY (id) ); 【テキスト本体】 CREATE TABLE item_text ( id INTEGER NOT NULL, serial_num INTEGER NOT NULL, body_text VARCHAR(32765) DEFAULT NULL ); のようなテーブルで管理しています。 serial_numフィールドは、32K以上のテキストに対応させるため、 テキストを分割したときの通し番号になります。 (続く)
(続き) テキストを取り出すときは、 select body_text from item_text where id = :Id order by serial_num; なんちゅう具合にしてかき集めます。 このようにitem_textテーブルはインデックスを設定できない 性質のためか、接続後、最初の検索で禿しく時間がかかります (ヘタすれば1分ぐらい)。 なんとかインデックスを設定できるようにデータの持ち方を工夫 するしか高速化の方法はないんでしょうか。
>>718-719 >性質のためか、接続後、最初の検索で禿しく時間がかかります
>(ヘタすれば1分ぐらい)。
環境がわからんけど、 WinXP 使ってるなら .gdb の問題かも。
テキスト分割って面倒じゃないかい。オレならテキストblob にするだろうね。
ところで IB6 オプソ版使わなきゃならん事情がない限り、Firebird に
するべきだと思うよ。(とりあえず V1.0.3 がお勧め)
IB6 オプソ版はかなりバグがあって、Firebird チームがそれらのバグを
修正してるから Firebird の方が安定してるよ。
(知ってると思うけど Firebird = IB6 オプソ版を継承)
>>720 レスさんくす。このスレまだ機能してんのか心配だった。(藁
> 環境がわからんけど、 WinXP 使ってるなら .gdb の問題かも。
すんまそん。WinXPでもWin2000でもやっとります。WinXPの方が多少時間が
かかるような気もします。例のGDB問題かも知れませんが、そんなに気になる
ほどでも。ちなみに、DBファイル本体だけは「.IB」にしてあります。
> テキスト分割って面倒じゃないかい。オレならテキストblob にするだろうね。
面倒です。(藁
でもごく短いテキストとかもあったりするので、BLOBよりは効率いいかなー、
なんて思ったりして…。ま、今のマシンパワーを考えるとそんなもん屁みたいな
もんでしょうが、技術屋の性(さが)ってヤツでしょうか。
> ところで IB6 オプソ版使わなきゃならん事情がない限り、Firebird に
(以下略)
がびーん。バグいっぱいあんの!?公開されているソースはビルドできたもん
じゃないってのは聞いたことあるけど。バグもいっぱいあんの?
IB6オプソ版使っているのには特に理由はないんですがね。趣味のプログラムだし。
ゆくゆくはFBへの移行を検討してはいましたが。FBの方が安定してるってのなら
そろそろ移行するか…。
現行のIBXがいつまで使えるかが心配。FBXとか提供されないかな…。
キャラ変えさせて(というか戻させて)もらいます。
丁寧ぶるの疲れた。
>>722 有用な情報サンクス。
インデックスに関してはわかってくれんでよろし。オレの設計が
うんこだってことはわかった。(苦藁
もうBLOBに変更する気満々で、いろいろと調べているんだが、
示してくれたURLの情報にあるような情報がドキュメントに見当たらなくて
四苦八苦している。ページサイズ(=セグメント?)と最大データサイズの
関係とか。
参考にしているのは、BCB6付属のIB6用ドキュメント。BLOBに関しては
わけのわからんことばかり書いてある。要するに、TIBQueryでストリーム
生成して入出力すればそれでいいんか?くそ、わかんねー。
>>723 >参考にしているのは、BCB6付属のIB6用ドキュメント。BLOBに関しては
>わけのわからんことばかり書いてある。要するに、TIBQueryでストリーム
>生成して入出力すればそれでいいんか?くそ、わかんねー。
http://pc2.2ch.net/test/read.cgi/tech/1035278719/701 を参考にしてBCBヘルプで調べてみては。(ちなみにオレのレスじゃない)
>>722 >つーかネットワークトラフィックの観点からは、VARCHAR(32765)は激しく
>無駄の多いテーブル設計だと思われ。
1 文字しか入ってないのに 32765 文字分にパディングして受け取るんかい?
IB/FB ってそんなバカじゃないと思うがどうよ。
>>724 疑うならパケット見れ。
でもIB6.5=<はその辺解決してたような気もする。
問題は、ソースコード盗まれた某も InterBase を改良しつづけている。って点だな。 オープンソースだから無条件で「よい」といえない現実が、FireBird には待っている。 SMP 環境でのスケーラビリティはおいこされちゃったしな。
>>725 >疑うならパケット見れ。
早速 IP パケットを見てみたけど、あなたの言う通りでした。疑ってごめん。
0x00 0x00 ・・・ でパディングされてるね。
ちなみに CHAR(***) にした場合は 0x20 0x20 ・・・ でパディングされてた。
IB5.6 と FB1.0.3 とも同じだった。
> でもIB6.5=<はその辺解決してたような気もする。
暇なときにでも確認してもらえるとうれしい。
なんでinterbase 6.5でググれば一発で出てくる話を確認しなきゃいけないんだ…ブツブツ
http://bdn.borland.com/article/0,1410,28107,00.html#Other_Changes に
Past versions of InterBase have transmitted VARCHAR fields from the server
to the client padded to their full length with spaces. This could cause
performance problems on slow or heavily loaded networks. This behavior
has been changed so that only the actual data in the VARCHAR field is
transmitted.
とある。
和訳しろとかゆーなよ。
>>728 thanx!
IB6.5 は改善されてるんだね。FB もなんとかしてもらいたいものだ。
自分で直してもいいんだぞ? できなきゃ依頼しる。
活気付いとるねー。やれー、やれー。
オレもやる。
さらにIB6のドキュメントを読みふけってみた。
どうやらオレは勘違いをしていたらしい。
ページサイズとは、データベースを作成するときに
指定するもの、セグメントとは、BLOB操作のための
バッファかな。
とりあえずデフォルトで問題ないっぽいので、これで
いってみよう。
>>724 せっかく回答例示してくれたんだが、あんなめんどくさいこと
せねばならんのか?CreateBlobStreamでもっと簡単に
できるのでわ?
ちゅうか、TIBSQLなんだが、
IBSQL1.FieldByName('hoge').LoadFromStream(HogeStream);
とかでいけた。
スレッドで処理して、クソでかいデータの取得中も
中止できるようにしたいからね。
PHP + Firebird で、遊んでるのだけど PHPのInterBase関数って、開発止まってるの?? なんか、昔、開発してた人が消えた。。。とか、見た記憶あるんだけど。 (バグフィックスは、してるっぽいので、誰かが引き継いでるのかな?)
いいかげん、InterBase からはなれる気は無いのかな。 いつまでたっても「フリーの IB」って位置から抜けられないぞ。
PHPに、FireBird関数なんてのが、出来ても良いんじゃないかな。 軽率ではあるけど、そっちの方がおもしろそう(^^; (いずれはそうしないといけなくなってくるのかな・・・)
735 :
デフォルトの名無しさん :03/06/25 16:56
ISQLで、日本語文字列をUNICODEとして格納したい場合にはどう書きますか? >insert into TABLE_A (CD,NAME_STR) values(1,'日本語'); 例えば、これをUNICODE化したい場合。
保守
IBExpertの日本語化ってまだなのかなぁ。 IBManagerとどちらにするか悩んでるのだけど。
>>737 IBExpert 途中まで日本語化やったけど結局挫折した。
あの編集エディタじゃやりづらい…。
今は IBManager 使ってるよ。DB作成とSQL推敲が楽でいい。
__∧_∧_ |( ^^ )| <寝るぽ(^^) |\⌒⌒⌒\ \ |⌒⌒⌒~| 山崎渉 ~ ̄ ̄ ̄ ̄
__∧_∧_ |( ^^ )| <寝るぽ(^^) |\⌒⌒⌒\ \ |⌒⌒⌒~| 山崎渉 ~ ̄ ̄ ̄ ̄
741 :
デフォルトの名無しさん :03/07/16 14:45
IBExpertいま使ってるけど IBManagerとどっちがいい感じ?
俺は PostgreSQL も MySQL も Interbase も 同じように操作できることが必要だったので 現在 IB Manager ユーザー。 機能はちょいIB Manager の方があるみたいだけど IBExpert と基本的にはかわらんのとちゃうかな? あ、そういやIBExpertで開けなくてIBManagerでは操作できた 文字コードNONEで日本語バリバリ入ったGDBがあったな。
IBManagerは日本語になったしねぇ
744 :
デフォルトの名無しさん :03/07/18 17:25
なら、IBManagerは買いかなぁー 購入は InterBase/FireBird Developer Bundle (1) か InterBase/FireBird Developer Bundle (2) になると思うけど ComponentsがIBO製のものとそうでない物とはどう違うのだろうか?
745 :
デフォルトの名無しさん :03/07/18 23:54
isql, IBConsole で充分。 タダならいいが、金払ってまでも使うもんじゃない。
InterBase5.6でデータが4Gバイトを超えて、「データが読めないよ」 みたいなメッセージが出て接続できなくなったのだが、このデータ を復旧する方法を教えてくれ。部分的にデータがなくなっても構わないから
NTFS の PC に持って行ったら?
寝ぼけてとるわ。名前欄間違えた(w
4Gを超えると、書き込みが一巡し、先頭から書き込まれるような 感じで、データベースを開けなくなります。 無理に2Gバイト程度にちょん切って復旧しようと試みていますが、 うまくいまかない。だれか知っている人いる?
>>749 gbak 使ってもダメ?
あと、ALTER DATABASE で DB ファイルを複数にしちゃうとか。
でも DB に接続できなきゃだめだね。
というか DB のバックアップとってなかったの?
あっ、これって DB の実験をしてるだけだよね?
その後の報告お願いね。
あきらめそうです。重要なデータが入っていたのですが、 復旧できるか死かです。
無理だよ。諦めな。
可愛そうだよ。 復旧方法で知ってるヤシを全部羅列してあげようよ。
>>749 >4Gを超えると、書き込みが一巡し、先頭から書き込まれるような
>感じで、データベースを開けなくなります。
意味がわからん。
接続できないのになんでそう言えるわけ?
大事なデータなら某に金払って何とかしてもらえ。
758 :
デフォルトの名無しさん :03/07/24 02:09
大事なデータならバックアップぐらい取って桶 と今更なことを強調してみる。
759 :
デフォルトの名無しさん :03/07/24 09:48
そういう問題じゃなくて、 運用時に破壊したらどうやって復旧するのか、 ということだと思う。
データベースのサイズ上限は無制限となっているが 4GB 以上のデータベースが作成できない。 InterBase 自身は扱えるデータベースのサイズに特に上限を定めていませんが、OS のファイルシステムによる制約は当然受けます。 WindowsNT4.0 であればこの制限は 4GB - 2Byte となり、これ以上のサイズの GDB ファイルを作成しようとすれば当然その結果としてファイルを読む事が出来なくなり、修復不可能な状態になります。 これは、あくまでも OS の制約であり、この場合はデータベースをマルチファイルデータベースとしておく事で回避できます。 マルチファイルとして作成し、全部で10のファイルに分割して作成すればおよそ40GB までのデータを、この場合なら扱う事が出来るでしょう。 マルチデータベースファイルの作成方法に付いては、InterBase 付属のデータ定義ガイドを熟読してください。
・・・ってこった。 gfixでいろんな引数与えてみて復旧を試みて駄目ならgbakでバックアップからリストア するしかない。
762 :
デフォルトの名無しさん :03/07/24 16:57
DATE というフィールドに'20030726'(2003年7月26日)というデータが入っています。 で、selectする時に、「今日の日付から1週間先までのデータ」を取りたいんですがそういうのできますか? 今日だと24日なので、1週間先は31日なので、'20030731'のデータまでOKという事になります。 言語はperlを使っています。 perlで初めに20030731という値を作ってそれを用いてwhereの後に条件を綴るのか、 それとも1週間というのだけ指定すればDBが勝手に持ってきてくれるのかどちらかだと思うんですが。
>WindowsNT4.0 であればこの制限は 4GB - 2Byte となり、 Win2000やWinXPでは、どうしてますか?
>>746 >InterBase5.6でデータが4Gバイトを超えて、「データが読めないよ」
>みたいなメッセージが出て接続できなくなったのだが、このデータ
Firebird でエラーになるまで目一杯書き込んでテストしてみたよ。
やっぱ 4G を超えるところでエラーになったんだけど、
エラー後に、isql 使って接続しようとしたら以下のエラーで接続できんかった。
--- 以下エラー内容 ---
I/O error for file "GDB ファイル名"
Error while trying to access file
パラメータが正しくありません。
--- 以上エラー内容 ---
そこで gstat, gfix でいろいろやってみたけど結果は同じく上記のエラーメッセージが出力される。
これまでの結果から 746 が言ってるようにダメだと思ったんだけど、
ふとGDB ファイル名をリネームしようとしたときにエラーになったわけ。
別に何のアプリもそのファイル使ってないのにおかしいなと思って、
Firebird サーバ見たら接続中だった。そこで再起動しなおしてみた。
そして、念のため再度 isql で接続してみたら、今度はエラーにならなくて
接続できたんだよ。gstat も gfix もエラーにならんかった。ちゃんと DB 内容も読めた。
最初 SQL DIALECT 3 でテストして、gfix で SQL DIALECT 1 に変更してテストもしてみたけど、
結果は同じみたい。
とういう結果から、再起動させてからやってみたらどうだろうか。
ちなみにこちらのテスト環境は以下の通り
・Win98 (FAT32)
・Firebird 1.0.3
結果報告待ってる。
NTFSなら1ファイルで2Tまでいけるのかね。
(Firebird_v1_ReleaseNotes.pdf から抜粋) -- Engine support for 64-bit file I/O All Firebird/IB versions prior to FB v1.0 (including IB v6.0) used both 32-bit API/OS calls and 32-bit (integer) file pointer structures. The engine's capability was thus designed to handle files with a maximum file size of 4Gb. In the Unix code the file pointer structures were defined as signed integers, thus limiting Unix and Linux implementations to file sizes of 2Gb. MS Windows By design, all versions of Win32 (Win9x/ME/NT/2000) provide full support for 64-bit pointer file operations, provided the right file pointer structure is passed. To add large file support for Firebird, it was necessary only to change the file pointer structure to LARGE_INTEGER and to modify the I/O calls themselves slightly. -- NTFS なら 4G を超えるファイルに出来るみたい。試して見れ。
InterBase 5.6 は NTFS であろうと 4G は超えられないということらしい。
5.6はやばいのね
>>768 その当時は 4G/ファイル 超えるファイルシステムなんて想定していなかったんじゃないか。
ただ複数ファイルにすれば 40G まで OK だからいいんじゃないか。
それがイヤなら IB7 か FB に乗り換えればいいことだ。
あれから Win2K(NTFS) でテストしてみたけど
>>766 の通り 4G 超のファイル OK だった。
なんでか知らんが Win2K(NTFS) の方が書き込み速度がかなり遅かった。なんでだろう?
ところで
>>746 はどうなったんだ?
想定してなかったで済むならそれもまたよし。
4Gのデータがパーになったら洒落で済まないと思うんだけどねぇ。
あらゆる事は洒落で済まされる。
774 :
デフォルトの名無しさん :03/07/28 20:35
CHARフィールドにUTF8を書き込んだときってNULLが消えたりしますか? 取り出したときに、スペース埋めされちゃってるような。
NULL?
勝手にスペースをカットして取り出すので気が付きにくいけど、NULLがカットされてるような。 Param.SetBlob(NULLターミネイト文字, 文字サイズ + 1) とかすると、やっとNULLが入るみたい。
纏めると、IB用のいくつかのフリーのODBCドライバは、 「文字列登録時にスペース埋め、文字列登録時にスペース削除」のようです。 この仕様で問題無いわけなのかな。
778 :
デフォルトの名無しさん :03/07/30 05:38
ページサイズってメモリあればでかい方が良いの?
779 :
デフォルトの名無しさん :03/07/30 05:40
780 :
デフォルトの名無しさん :03/07/31 20:28
フリーで、IB Manager や IB Expertみたいなツールありますか? データの入出力からトリガ設定まで出来るような。
IB Expert
782 :
デフォルトの名無しさん :03/08/01 09:02
>>781 personalは無料なんですね。
日本語化ファイルが見つからないんですが、どこにあるんでしょう。
(^^)
785 :
デフォルトの名無しさん :03/08/04 18:35
IBObject使ってる人います?
IBXやdbExpressよりIBObjectが便利ということですか?
ネタがないなら無理に嫌味な長文書かなくてもいいと思うのだが。
(⌒V⌒) │ ^ ^ │<これからも僕を応援して下さいね(^^)。 ⊂| |つ (_)(_) 山崎パン
792 :
デフォルトの名無しさん :03/08/18 19:54
例のfirebird本に載っているサンプルを試しているんですけど、インタラクティブSQLで日本語(漢字)を含んだinsert文がエラーになってしまいます。 なぜですか? サーバ側OSは2000、クライアントはXP、TCP/IP環境でIBコンソールからの会話処理は正常にできます。
793 :
デフォルトの名無しさん :03/08/29 09:20
Webみたいなマルチスレッドだと、 1つのTDatabase.StartTransactionだと破綻するところが、 TIBTransactionをスレッド毎にCreateすることで回避できるのでしょうか。 こんな感じですか? IBTransaction.Create; IBTransaction.DefaultDatabase = IBDatabase IBTransaction.StartTransaction try try //処理 IBTransaction.Commit; eccept IBTransaction.Commit; end finally IBTransaction.Free; end
>>793 そんな感じでOK
でもせっかくJavaやPHPのインターフェイスが揃ってるのに、Delphiで
わざわざWebアプリ作るメリットってあるんかなあとは思う。
795 :
デフォルトの名無しさん :03/09/11 00:20
>794 PHPとかじゃ出力系が弱いから、DBへのアクセスはWebで、レポートの作成はDelphiで、っていう使い道は誤りか? PHPからpdfに書き出すことも考えられるけど、印刷に特化した成果物となるとやはり力不足でしょ。
>>795 意味がよく分からない…。
誰も印刷制御をDelphiでやっちゃダメだなんて書いてないのに。
797 :
デフォルトの名無しさん :03/09/12 14:25
>1つのTDatabase.StartTransactionだと破綻するところが、 >TIBTransactionをスレッド毎にCreateすることで回避できるのでしょうか。 >IBTransaction.Create; >IBTransaction.DefaultDatabase = IBDatabase >IBTransaction.StartTransaction >try try > //Query処理 > IBTransaction.Commit; >eccept > IBTransaction.Rollback; >end >finally > IBTransaction.Free; >end ↑ Query処理とIBTransactionとが1対1に出来ればこれでよいと思いますが、 IBTransactionとIBDatabaseが結びついてるわけで、 Query処理がマルチスレッドで動作したときには、 別スレッドのトランザクションが、勝手にCommit/Rollbackして干渉しちゃいますよね?
>>796 「DelphiでわざわざWebアプリ作るメリット」ってあるから、こういうメリットはあるかなと思ったことを書いただけだ。
ダメとか何とかだれも言ってないと思うが。
ちょっと教えて下さいよ。 ISQLからテーブルにinsert文を投げるとき、valueに日本語が含まれると次のようなエラーがでます。 「arithmetic excetpion, numeric overflow or string truncation...」 要は、文字列のコードが不正だって事のようなのだが、テーブルにはちゃんとSJISだってことを明示しているし、isqlも日本語対応版を使っている。 何がいけないんですか?
>>799 んーと、isqlはIBConsoleについてる奴でしょうか?
おそらくisqlで接続するときにSJISになってないのではないかと思います。
いま手元にないから自信ないけど、isqlの接続パラメータみたいなのに
キャラセット指定するところあったよね。
>800 早速三楠。 isqlは例のfirebird本に付いていた、日本語対応改造済みの奴。 接続を新規作成するときにデータベース名とかユーザ名とかパスワードとか入力するところでS-JISと定義したはずなんだけど。
>>801 SET NAMES SJIS;
やらにゃあかんよ
803 :
デフォルトの名無しさん :03/09/29 20:27
InterBase7.1のサーバーパックの購入を検討しているのですが データーベースアプリの購入は初めてなんでライセンスがよくわかりません。 同時接続1ユーザーライセンス(4セッション)とはどういう意味なんですか?
>>803 そういうシビアな問題を2chで聞くのはどうかと思うぞ。
間違ったことを教えてもらってトラぶってもだれも責任とらんし。
で、漏れの解釈では・・・
単純なC/Sアプリなんかではユーザの1接続で1セッションしか
発生しないから同時に接続したいユーザ数分のライセンスを購入
すればOK。アプリが複雑で1ユーザが複数のセッションを必要と
する場合、それが4セッションを超えなければ上記と同じ。超える
場合は追加が必要。たとえば同時3ユーザで一人あたり5セッション
確保する必要がある場合、6ユーザライセンスが必要。
訂正あればだれかよろしく。
実際には合計セッション数がオーバー(ライセンス数×4を超える)
すると接続時にはねられる。同時ユーザ数とかはどうだかしらん。
つまりすぐ接続を切れば何ユーザー増えようがOK? ってことじゃないな。セールスサポートにTELしてみれ。
>>803 InterBase4.21から伝統的に1ユーザー=4セッションとなっているが
1セッションしか使用しないアプリの場合、1ユーザーライセンスで
4人同時接続まで可能。
>804 >806 そうなんですか!今はFirebirdで開発中なんですが、将来的に製品版がほしいのです。 C/Sといっても小規模なんでサーバーパックだけでもいけそうですね。 2ch情報ではありますが、検討材料にさせていただきます。 ありがとうございました。
808 :
デフォルトの名無しさん :03/10/06 08:53
IB6.0SSをカーネル2.4系のLinux上で動かしています。 INET/inet_error: select in packet_receive errno = 9 とうエラーを吐きまくっているのですが、どういったエラーなのかがわからず困っています。 どなたか教えていただけませんか?
1テーブルのフールドの数に制限ありますか?
1テーブルのプードルの数は制限ありますか?
812 :
デフォルトの名無しさん :03/10/09 10:20
アプリから、データベースファイルに障害が発生して無いかチェックする、 みたいなことは可能ですか? IBXで出来るとポトペタなんだけどな...
>>812 DOS窓でコマンドラインを渡してやるっちゅうのは、どうだい?
必要があればコードうぷできるけど(ただし、DBチェックじゃなくて
バックアップ/リストアだけど)。
>>813 アプリに内蔵するなのDBで、ユーザにはIBを意識させないようにしたいでつ。
(ファイルとして意識させる程度なら良いですけど)
>>814 CreateProcessでDOS窓を立ち上げて、コマンドラインを渡してみる。
DOS窓はCreateProcessの StartupInfo構造体に適当な値を渡せば
非表示もしくはアイコン化できるので、ユーザーはIBを意識することはない。
漏れIBアプリでこの方法でIBを隠蔽したんだけど、汚ったねえコードで
よければサンプル出してみよっか(Delphiだけど)?
>>816 長いので、こちらを参照してください。
わかりやすいように「ぬるぽ」と言う名前で発言しています。
ttp://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/lounge/index.html の「質問の解答用ソースを貼るスレ」の4番目くらい。
なお、これはバックアップ用のサンプルなので、データベースの検査に関しては
gbak.exe.ではなくて、gfix.exeを使用して、適切なパラメータを自力で
設定してみてください(これは、やったことがないので説明できない)。
また、SIのパラメータを調整するとDOS窓を非表示にできるのだが、この引数も
忘れちまったスマソ。でも、結果を取得するにはあえてDOS窓を表示したほうが
いいかもしれない(DOS窓に結果が表示されるかもしれない)。
gfixの引数はInterbaseマニュアル「操作ガイド」の第6章 データベースの環境設定と保守
のp125-138付近を、CreateProcessに関してはMSDNあたりを参照してください。
あとは自力で工夫してみて。
>>815 どこかにIBConsole.exeのソースコードがあったような気がしたんだけど、
(FireBirdのHPだったような気がするけど、失念。どこかには確かにあった)
それを探してソース解析すれば一発じゃねえの?
あったわ。
ttp://www.twise.co.jp/download_m.html の「FireBird 1.0(ファイナル)日本語版」のところで
IBConsoleの日本語化ソースコード(Delphi 5)ちゅうのがあった。
漏れも中身見てないけど、IBConsoleはデータベースの検査をやっているので
その部分のコードをパクッ(略)ば、>812の要求は満たせるんじゃないの?
案外>817とほとんど同じかもしれないが。
FireBird-1.5RC6のインストールって、ダウンロードしたファイルを解凍した だけでOKでしょうか? 一度もFireBirdをインストールした事がないマシンに入れるのに、gogleなん かで検索しても、今一それらしい情報にヒットしなかったんで。 Marathonを使ってみたくて、FireBirdを入れようと考え、どうせ入れるなら 最新版と思って色々探しても結局判らずじまい。
FireBird-1.5RC6のインストールって、ダウンロードしたファイルを解凍した だけでOKでしょうか? 一度もFireBirdをインストールした事がないマシンに入れるのに、gogleなん かで検索しても、今一それらしい情報にヒットしなかったんで。 Marathonを使ってみたくて、FireBirdを入れようと考え、どうせ入れるなら 最新版と思って色々探しても結局判らずじまい。
Firebird スレがあるのになぜここで? 解凍しただけじゃだめ。以下の作業が必要になる。 例えば展開先を C:\Program Files\Firebird にした場合で説明すると、 (以下コマンドプロンプトで作業) 1) カレントディレクトリを C:\Program Files\Firebird\bin にする 2) instreg.exe install "C:\Program Files\Firebird" 3) instsvc.exe install "C:\Program Files\Firebird" -guardian 4) fbclient.dll と gds32.dll を Windows システムディレクトリにコピー でいいと思ったが。詳しくは doc\InstallNotes.txt を参照
823 :
デフォルトの名無しさん :03/10/16 12:13
プログラムでシステムテーブルを参照するにはどうすれば良いですか? テーブルやビューの名前を取り出したいのですが。 Oracleでは select table_name from all_tables でテーブル名を参照できるらしいけど。
どうも。解決しました。
解決してないっつの
どっちやねん
解決しています。ありがとう。 近頃はどの質問スレも荒れてますね。
>>827 蛇足って俺もお願い気味なんすが
解決しただけじゃなくてどうやったら解決できたってのが
欲しいな。
他の御仁にもわからんことあるだろうしさ
ってか本音いうと俺もしっときたいんです・・・ハイ
830 :
デフォルトの名無しさん :03/10/20 10:08
IBXで、IBTransaction->AddDatabaseして正常に動作する場合と、 ついでにIBDatabase->DefaultTransaction = IBTransactionもしとかないとエラーになる場合があります。 基本は、両方設定でつか?
テーブル&ビュー一覧取得SQL select RDB$RELATION_NAME from RDB$RELATIONS
thanx
>>832 IBXはTQueryより設定多くてソース直すの怖かったんですけど、そうします。
どうも。解決しました。 答えは「できません」だそうです。 どうも。
837 :
デフォルトの名無しさん :03/10/22 16:56
deadlock update conflicts with concurrent update デッドロックみたいですが、これってどういう意味で塚? どう対処しろということなのかなあ。
838 :
デフォルトの名無しさん :03/10/25 10:02
同じキーを持つレコードを更新しようとしたんでわ? 試行回数を決めて一方が更新をキャンセルするようにするとか、 レコードロックのレベルを上げて誰かが更新中は触れなくするとか。
839 :
デフォルトの名無しさん :03/11/02 01:35
なんでこのSQLエラーなんですか? SELECT A.*, B_1.NAME FROM A LEFT OUTER JOIN B AS B_1 ON A.KEYCD = B_1.KEYCD Table名にASって使えないのね・・・
841 :
デフォルトの名無しさん :03/11/04 13:15
Interbase7.1でIBRepication Server使っている人いますか? 「指定したファイルが見つかりません」などと訳の解らないエラーメッセージが表示されて レプリケーションサーバが立ち上がってくれません。 ライセンスキーは入っています。 使えている人がいるなら私の使い方がまずいのかもしれませんのでお訊ねしている次第です。 でも、私の使い方が間違っているとは到底思えないのでござます。 どうしたらよいのやら。とほほ。
842 :
デフォルトの名無しさん :03/12/23 09:24
FirebirdのUDFの関数名エイリアスなんですが、一度RDB$FUNCTIONSから 削除すると二度とそのエイリアス名が使えないようなんですが、使えるように する方法、またはエイリアス名の登録記録を参照、削除する方法をご存知の方、 お教えください。
843 :
デフォルトの名無しさん :03/12/25 17:53
そういや、もうInterBaseの5.6のライセンス購入が終わったんだよね ・・・・という事で上げ
844 :
デフォルトの名無しさん :03/12/26 12:37
>>842 そのテーブルだけじゃなく別のテーブルにも情報が残ってる可能性
があるからDROP EXTERNAL FUNCTIONで消したほうが安全じゃないかな。
>>842 RDB$を直接弄るのはやめた方がいいよ。漏れもはまったことがある。
極めたのならいいけど、通常はGenerator以外は基本的に弄る必要はないはず。
DROPつかえ。
846 :
デフォルトの名無しさん :04/01/02 07:18
あのバカみたいな質問なんですが srever_nameってどういうもん入力すればいいんですか? ipアドレスですか?
848 :
デフォルトの名無しさん :04/01/22 17:44
すいません、今IBをServletから呼び出して 簡単な掲示板を作っていたのですが interbase.interclient.CommunicationException: [interclient] Communication error: An IO exception occurred while trying to send data to server 192.168.1.1. The message of the IOException is "Broken pipe". See API reference for exception interbase.interclient.CommunicationException というようなエラーが1日に1回くらいでてWEBサーバーからDBサーバーに 接続できなくなってしまうのですが このような現象はどんな時にでるのでしょうか・・・ また回避方法ってのはどうすればいいのでしょうか
すんません、環境かきわすれましたが Tomcat3.2.3 JDK1.3.1 Redhat6.2 です
まずサーバーのログを調べるのが先じゃないか?
851 :
デフォルトの名無しさん :04/01/30 09:08
InterBase Adminコンポーネントの、 IBBackupServiceとIBRestoreServiceを行うと、 壊れてない綺麗なデータベースが出来ますか? 試してみようにも、壊れたデータベースファイルがまだ無いので...
852 :
デフォルトの名無しさん :04/02/04 09:03
database is not found みたいなエラーが出るんですが、何が原因でしょう。
>>852 たぶん、データベースが見つからないんだと思います(w
855 :
http://chbox.com/ :04/03/13 22:55
856 :
デフォルトの名無しさん :04/03/24 23:23
>>797 >別スレッドのトランザクションが、勝手にCommit/Rollbackして干渉しちゃいますよね?
気になってるんで教えて欲しいんですけど、上のようなことってあるんですか?
あるとすると、スレッド内からInterBaseにアクセスってどうやるんでしょう?
BDE使ってSession張る?
DB使うようなプログラム書くの慣れてないんで、的外れな質問だったらすみません。
>>857 情報ありがとうございました!
おかげで見えてきました。
ストアドのデバッグってどうやるの?
IBExpertにデバッグ機能があるが使いかたがわからんので漏れは デバッグ用のテーブルつくってそこにデバッグ情報出力してる。
860> thnx 全然分からないけど参考にさせて貰います。
862 :
デフォルトの名無しさん :04/09/11 23:31:57
>>861 激しく遅レスだが、ログ吐き出し用テーブルを作ってそこに値を
インサートするってことです。
CREATE TABLE DEBUG_LOG(
CODE INTEGER,DEBUG_STR VARCHAR(256))
みたいなのつくっといて、ストアドでところどころ
INSERT INTO DEBUG_LOG(DEBUG_STR) VALUES(:LOCAL_VAR);
みたいな。
少し前から、IB6を使い始めた者なんですが、 >483のやり方って、具体的にはどうやればいいのでしょうか?
>>864 Excelのマクロでワークシートから
INSRET INTO (FIELD1,FIELD2,FIELD3) VALUES(1,'AAA','abc');
INSRET INTO (FIELD1,FIELD2,FIELD3) VALUES(2,'BBB','def');
INSRET INTO (FIELD1,FIELD2,FIELD3) VALUES(3,'CCC','ghi');
みたいなテキストファイルを書き出してISQLで実行。
もちろんワークシートをコピーして秀丸か何かでやっても良い。
ちょっと考えればわかるよね。
866 :
デフォルトの名無しさん :05/02/19 05:27:35
IBって無料なの?
InterBase6 OpenSource: ・無料 ・海外でのみ公開され、付属IBConsoleは英語のもの InterBase6 有償版: 日本のBorlandから発売され、IBConsoleの日本語版がついている。 日本語版のマニュアルがあるので、マニュアルだけでもあると便利 でも、もう売っていないかも。 InterBase6.5系: 海外でのみ発売されたInterBaseのバージョン。詳しくはしらない。 InterBase7系: InterBaseシリーズの最新版。 有料のものしかない。 ------------------------------------------------- Firebird1系: InterBaseの無料版が6のみだったので、公開されたIB6のソースコードを 元に、オープンソースデータベースとして派生したもの。 InterBase6と100%互換らしいのと、InterBase6 OpenSourceにあったバグ が少し修正されているようなので、InterBase6 OpenSourceを使うよりは こっちのほうがお勧め。 Firebird1.5系: コードをC++ベース?に書換え、機能強化したもの。 無料のもので使いたいのならこれが一番良いかも。 InterBase用の接続ドライバなどで繋いでもだいたい大丈夫。 なにか間違っていたらすまそ。
基本的に6からわかれて別物とおもっていい 7の新機能群は便利にみえる 安いしねぇ
FBは1系を業務で使ったことあるけど、ロクなSQL書けなくて散々な目にあった記憶が。 インラインビューが使えないのはイタすぎです… 7系はどう?少しはマシになってるの?
俺は5だったかから入ったけど、SQLの制限は多いよ ただ、多機能なDBというよりはとにかくコンパクトで早い、扱いやすいDB という位置づけだから納得して使った いまどきメモリ32Mとかで満足な速度で動くDBも珍しいと思う 組み込み向けには最適だね 7はJDBC方面がいいね
871 :
デフォルトの名無しさん :05/03/04 14:47:35
gdbファイルの更新日付が変わらないことってありましたか? 今、その現象が出て困ってます。 アプリは正常に動作していてCOMMITもかかってるはずなのに・・・
拡張子がgdbだとシステムファイル扱いされるWindows問題ならありましたが。
>>871 すべてのクライアントが切断しないと変わらないんじゃなかったっけ・・?
>>871 >>873 さんの行っている事が正解だと思う。
gdbファイルのタイムスタンプはリアルタイムでは変わらない。
当方、IB5 for win で確認。
875 :
naka :2005/03/23(水) 23:32:09
877 :
age :2005/04/29(金) 09:28:21
7.5の日本語版って出ないの?
そのうち出るんじゃない。
InterbaseもFirebirdと同じように大規模な書き換えが行われているのかなあ。
SET TRANSACTION NO SAVEPOINTとパフォーマンス・モニタの改良修正
882 :
デフォルトの名無しさん :2005/08/16(火) 15:51:15
Interbase7を使っています。シャドウファイルについてお尋ねいたします。 シャドウファイルをネットワークドライブに割り付けたいのですが出来ないことは承知しております。 どうしても出来なのでしょうか? ローカルドライブにシャドウファイル作成出来ても、そのマシン自体が死んでしまったらシャドウファイルもくそもないので シャドウファイルは別コンピュータに作りたいのです。
シャドウは非同期だぞ。 バッチ処理でコピーでいいじゃん。
>>882 物理的に別なディスクをつないでそこにシャドウを作ればほとんどの場合大丈夫じゃない?
落雷や地震とかで全ディスクやられたりしたらダメだけど、その場合は定期的なバックアップで対応。
Linux系でNFS?ならできるかもしれないけど、ネットワーク越しだと信頼性がかなり落ちてしまうんじゃないかなぁ
>>883 前にもどこかで非同期だって見たような気もするけど、本当にそうなの?
非同期なシャドウって作る意味あるのだろうか・・・。
885 :
デフォルトの名無しさん :2005/11/06(日) 19:13:20
みなさん質問があります。ご助力お願いいたしまする候。 現在InterBase6 OpenEditionとDelphi5で開発してますが ANSI SQLに準拠しなさ過ぎていて、 たとえば、CASE文が無いためNULLを空文字や0に変換できないとか また、情報が少なくユーザ定義関数を作るにも作り方が分からないとか その他もろもろ等々。 こんなつまらない事・簡単なことで結構こまっていたりします。 そこでFireBird1.5がInterBase互換でANSI SQLに準拠してると聞いて FireBird1.5に乗り換えようか検討しています。 単純にInterBase6をアンインストールして FireBird1.5をインストールするだけで、 現在開発中のものが、そのまま動作するものなのでしょうか? どうか平に平にご助力お願いいたしまする候。
>>885 使用中のDBをバックアップして(gbkファイルにして)
IB6をアンインストールして、
もしC:\Windows\System32の中にgds32.dllが残ってたら手動で削除。
そしてFirebird1.5をインストール
バックアップしておいたファイルからリストアすればOK。
互換性はほぼあるけど、微妙な違いはあるから作成したプログラムを
一通り動かすといいよ。
887 :
デフォルトの名無しさん :2005/11/10(木) 16:11:42
>>886 ご助力誠に有難き候。
なるほどそうでしたか
もぅInterBase6の非力さに堪忍袋の緒がはちきれんとばかり
でしたので本当に助かりました。
ところで、ユーザ定義関数の作り方はお解かりになられますか?
もしくは、詳しく解説されているページをご存じないでしょうか?
どうか平に平にご助力お願いいたしまする候。
888 :
886 :2005/11/11(金) 07:22:08
>>888 良いサイト教えていただきましてありがとうございます!
金輪際InterBase6は使わない方向で検討しております。
どうもありがとうございました!
俺はIBやFBはSQL方言が少なくていいRDBMSだと思っているけど。 ORACLEやSQL Serverなどの重量級に比べ扱いやすくて入門用には最適だと思う。管理の手間も少ないし。
>>890 同意。
もっと入門書があれば人気でるんだろうけどね
2005年の現在においてFBもありますし リソース(資源)気にするほどマシンパワーが ないわけでもないから、IB6使う利点は少ないかと。
interbase4.xをwindows2003serverで動かしたことある人居ませんか? 頼まれてNTで動いていたシステムをマシン入れ替えで2003serverにしたらクライアントアプリが非常に遅くなりました。 入力画面表示するのに3分くらいかかります。 クライアントはXp Home、アプリはDelphi3+BDE5.2です。 サーバーのハイパースレッディングはオフにしてあります。
IB4じゃあServer2003どころかXPでも駄目だろ。 IB7.x(とD5以上)にしないと。 あとはVMwareでNT on Server2003/XPっていう考え方もあるが。
>>894 ハイパースレッドのプロセッサ上で稼動させると遅くなるらしいです。
BIOSでOFFにすれば直るらしい。
オフにしてるって書いてるじゃん・・。 IBやめてFB1.5にするとか・・・ 895の言っているようにVMWareも良さそうだな
898 :
895 :2006/03/04(土) 21:05:53
あとはまぁFirebirdに乗り換える(金がかからないからね)という考え方も。 それとBDE経由だとD3のままでもよかったかも。
899 :
894 :2006/03/08(水) 15:22:30
サーバーをFireBirdに変更したところ動くようになりました。 今のところ不具合は出てないようです。 ありがとうございました。
900 :
デフォルトの名無しさん :
2006/05/04(木) 23:24:07 +