Firebird関連スレ2at DB
Firebird関連スレ2 - 暇つぶし2ch250:NAME IS NULL
06/11/05 14:25:58 Bz8nqO54
キャラクタセットを設定する

251:NAME IS NULL
06/11/06 16:40:23
>UTF8使えますか?
UTF8ってコードのエリアがASCIIと変わらないから使えないというのはありえない。

>キャラクタセットを設定する
キャラクタセットNONEでも使えるお。

252:NAME IS NULL
06/11/06 18:58:56
>>251
ありがとう。
CREATE TABLEのときの文字数との関係とかNCHARとは何?とかが
いまいちよく分からなくて・・・・

253:NAME IS NULL
06/11/07 10:08:49
DBのカラムから過去のライブラリまで、charのまんまいけるのが、UTF-8の利点じゃね?

254:NAME IS NULL
06/11/07 16:15:19
キャラクタセットって指定しなくてもなんでも入るけどさ、
指定してるときとそうでないときでソートの順序がちがうよね?

255:NAME IS NULL
06/11/07 18:30:18
>>254
その点は数字同士とかアルファベット同士とかかな同士で正しければあまり問題ないです

256:NAME IS NULL
06/11/07 23:43:55
ソート順よりもLIKE条件の方が痛いなー。

257:NAME IS NULL
06/11/08 15:47:43
SQLのLIKEってそんなに役立つ?
LIKEの判定をオーバーライドできるわけでなし。

258:NAME IS NULL
06/11/11 09:50:42
>>225
発言を今見ました。まだ見ていたらお手数ですが
再アップしてもらえませんか。
1.03+XPでは確かに接続切断に時間がかかる現象が発生します。
(BDEじゃなく、PHPの関数で接続でも発生します)
バイナリとできればソースの両方あると安心です。
よろしくお願いします。

259:NAME IS NULL
06/11/11 12:47:39
>>258
拡張子の問題じゃないの?

260:NAME IS NULL
06/11/14 15:39:16
2.0がやっとリリースされたので、早速入れてみたところ、
なんか遅い。。。
バックアップからリストアしてODSが11.0になったのも確認したんだけど。。

なんか、プランが1.5よりも悪い気がする。
ほかの人はどうですか?

261:258
06/11/14 18:03:07
>>259

>>238
・・・やっとアク禁解除。

262:NAME IS NULL
06/11/15 17:57:47 p7BgIwN1
WindowsでFirebird2.0を使っているのですが、
MysqlやPostgresやSQL Serverでいう、インフォメーションスキーマってありますか?

システムカタログみたいなテーブルがあったら、それでもいいのですが。
どうぞよろしくおねがいします。

263:225
06/11/16 06:18:45
>>258

ソース
URLリンク(bebe.run.buttobi.net)
DLKey = firebird

バイナリ8種類
URLリンク(up.magic3.net)
DLKey = firebird

お役に立てれば。

264:258
06/11/16 18:22:49
>>263 =225
今しがた、いただきました。
取り急ぎ、お礼まで。
開発環境がよくなりますです。ありがとう。

265:NAME IS NULL
06/11/17 16:26:16
えーと、2.0になって何が出来るようになったんだっけ?
FROM句サブクエリーぐらい?

266:NAME IS NULL
06/11/17 16:53:25
FB1.5.3でレコード追加順に連番を振る項目を追加したいんですが、トリガーとジェネレータは判ったんですが
既存のレコードに連番を振るようなSQLってどう書けば良いんでしょうか。


267:NAME IS NULL
06/11/17 17:06:21
>>266
GET_ID() の解説みてみ
URLリンク(firebird.skr.jp)


268:NAME IS NULL
06/11/17 17:15:17
>>266
連番になるとは限らないから。(欠番が出ちゃだめなら使わない方がいいよ)

269:NAME IS NULL
06/11/17 18:17:16
>>267
>>268

どうもです。うまくいきました。
別に欠番があっても問題ないのでとりあえずこれで行きます。


270:NAME IS NULL
06/11/18 03:53:46 kObfcDfE
>>262

あります。英文で1.5のときのものですが、以下のURLで以下のセッションをダウンロードしてみてください。
URLリンク(www.ibphoenix.com)
INTRN-A202-R The Firebird system tables Martijn Tonies

271:NAME IS NULL
06/11/18 04:07:37 kObfcDfE
>>265

ここらへん。
URLリンク(www.firebirdsql.org)

272:NAME IS NULL
06/11/18 11:30:36
ぎゃあぁああ、2.0ではOPEN,CLOSEは予約語か!
こりゃ随分手を入れないとダメだなあ…orz

273:262
06/11/19 00:00:49
>>270
色々と探してはいたのですが、これは知りませんでした。
私が取得したい情報は、これで何とかなりそうです。

ありがとうございました。

274:NAME IS NULL
06/11/19 19:38:15
>>272
ありゃりゃ....

Firebird 2.0 新しい予約語
URLリンク(www.firebirdsql.org)

あれ、でもInterBaseの予約語の表ではすでにOPEN, CLOSEは入ってますね。
URLリンク(www.ibphoenix.com)

275:NAME IS NULL
06/11/22 09:35:13
>>272
ダブルクォーテーションで囲む、予約語回避機能では通らないかな?

276:NAME IS NULL
06/11/22 19:04:08
2.0の差分はリリースノートでわかるけど、2.0に対応したリファレンスマニュアルはない?

277:NAME IS NULL
06/11/23 20:33:40
>>276

英文ですが、Fyracleを販売しているJanus Softwareで一部公開されています。
URLリンク(www.janus-software.com)

PSQL, Admin tool, PHPです。

278:NAME IS NULL
06/11/29 14:23:27
完全なマニュアルってIB6.0のものしかないよね?
なんでマニュアルつくらないの?

279:NAME IS NULL
06/11/29 15:13:14
>>278
おまえが作らないのは何で?

280:NAME IS NULL
06/11/29 18:16:49
>>279
はぁ?俺が言ってるのはFoundationで成り立ってるプロジェクトなんだから、
無償ボランティアや他企業がマニュアルつくるまで誰も作らないなんて変だろ、
っていうことなんだけど。

281:NAME IS NULL
06/11/29 18:19:20
>>280
( ゚Д゚)ポカーン

282:NAME IS NULL
06/11/30 10:50:06 jaelGuvj
>>280

マニュアルつくってないというか、非常に遅いだけです....
Using Firebird (work in progress)
The official Firebird manual is slowly being built up.

URLリンク(www.firebirdsql.org)

IB6.0 Open editionのソースは自由に使えたけど、ドキュメントは使えなかったため
それをベースに作成、ということができなかったようです。

283:NAME IS NULL
06/11/30 11:20:31
オフィシャルなユーザ会があるのに、相変わらず国内の情報で一番まとまってるのが
ユーザ会とは全くの無関係の>>1のWikiという現状はいつまで続くのか。

日本語マニュアルがないのはFirebird日本ユーザ会の責任。
作ると手を挙げてからダラダラと引き延ばしてる。
URLリンク(sourceforge.jp)
もう三年以上経ったというのに成果物は皆無も同然。

作らないのならはっきりと「作るのやーめた」って言わないとダメ。
そうしないと「じゃあ俺が作る」って人も出てこないし、出てこられない。

284:NAME IS NULL
06/12/01 13:04:16
FB1.5.3で既存の列をnot nullに変更したいんですがSQLでは出来ないんでしょうか?


285:NAME IS NULL
06/12/01 21:09:41
wikiのSQLリファレンス見るとわかるけど、ALTER TABLE で出来るのでは?
表制約追加できるみたいだし

286:NAME IS NULL
06/12/01 21:40:35
>>284
IBExpertでやったらこんなSQLが出てきてたよ。

update RDB$RELATION_FIELDS set
RDB$NULL_FLAG = 1
where (RDB$FIELD_NAME = 'フィールド名') and
(RDB$RELATION_NAME = 'テーブル名');

not nullを外すときは、1がnullになっていた。

287:NAME IS NULL
06/12/01 23:44:56
>>285
wikiには書いてないんですよ。

>>286
私も同じでした。
それであれっと思って調べてもやりかたが見つからなかったので質問したんです。



288:NAME IS NULL
06/12/02 15:10:04
>>283
いや日本語マニュアルなんてどうでもいい。英語のマニュアルでいいから
2.0完全版がほしい。いつまでも6.0マニュアル+リリースノートではきつい。

289:NAME IS NULL
06/12/04 01:05:12
Firebird Worldwide Conference初日にFirebird 2.0がお披露目
URLリンク(www.itmedia.co.jp)

290:NAME IS NULL
06/12/04 01:18:26
>>287

SQLでは変更できない。
IBExpertが作成したSQL文のように、システムテーブルを直接更新するか、
それがいやなら、NOT NULLのDOMAINを作成して、それへのALTERをするしかない。

SQL> create table t1(c1 char(1));
SQL> create domain newc1 as char(1) not null;
SQL> show table t1;
C1 CHAR(1) Nullable
SQL> alter table t1 alter column c1 type newc1;
SQL> show table t1;
C1 (NEWC1) CHAR(1) Not Null

291:NAME IS NULL
06/12/04 23:16:58
>>290
ああ、やっぱり変更できませんか。
ドメインを使うってのは盲点でした。
ありがとうございました。


292:NAME IS NULL
06/12/06 23:16:25
誰かDBまるごとSSDにつっこんで運用してる人っている?
やっぱ速ぇーのかな?

293:NAME IS NULL
06/12/09 09:54:42
>>292
ソフトウェアRAM DISKに500MB未満のをブチ込んでるが
やっぱりHDDとは天と地の差。
金に余裕が出来たら・・・って100万くらいか?

294:NAME IS NULL
06/12/15 13:49:21
>>292

USBメモリや、メモリカードにつっこむとか....

295:NAME IS NULL
06/12/15 14:26:48
フラッシュは遅いし書き換え回数制限があるんじゃなかったか?


296:NAME IS NULL
06/12/15 21:35:12
ってかFirebirdって遅くね?
PostgreやMySQLに比べてどうよ?

一概には比べらんね・・・ってのはナシね
経験者の感覚的なもので良いので
ベンチマークとってみた暇人でも良し
意見をくれ

297:NAME IS NULL
06/12/16 10:28:55
人の主観を聞いたり人にやらせることに何の意味があるんだろ・・・

298:NAME IS NULL
06/12/16 16:03:47
>>283
ドキュメントには肝心の
「トランザクション回数には限りがあり、そのたびにバックアップ・リストアをしてね。」
が抜けてるな。

299:NAME IS NULL
06/12/20 11:23:31
>>296
postgresも使ってるけどfirebirdが特に遅いとか感じたことはないけど、
何を根拠にそう感じるのか書いてくれない?ぜひ参考したい。
ただ、firebirdはフリーで使えるレプリケータがないから俺は最近
postgresに移行しつつある。
それはそうと日本語情報少ないのがfirebird普及の大きな妨げになってるよね。

300:NAME IS NULL
06/12/20 11:35:50
資料がなくてもそこそこ使えるってのがメリットでもありデメリットになってるって
感はあるかな

301:NAME IS NULL
06/12/20 21:41:00
URLリンク(benchw.sourceforge.net)

こんなのあった

302:296
06/12/20 23:23:35
>>299
では経験上の話・・
特に更新が多発するアプリケーションで、1つのテーブルに
100万~200万レコードが入り出したあたりから急にinsertやdeleteが遅くなると思う。
ストアドプロシージャとトリガーを多用するとさらに顕著。
それとクライアントからの接続プロセスが多いと悲しいほど検索/更新が落ちる時がある。
あと、どんどんレコードバージョンが増えるにつれてインデックス性能が落ちるような気が。
バックアップ/リストアすればいいんだが、24/7のシステムではリストアが難しく実運用が困難だなぁ・・と。

Firebirdで開発する前にきっちりと検証したほうが良いね。当たり前だけど。

>>301
参考にさせてもらいます。
postgreは8.1と8.2でパフォーマンスが良くなっているらしいから、さらに差が出るという事か・・。


303:NAME IS NULL
06/12/21 20:37:35
>>296
会計関係のわりと単純な案件だったけど Firebird 使った時、
試しに出納明細 470 万行以上つっこんで集計したりしたが、
ストレスなく動いたんで安心して納品しました。

304:NAME IS NULL
06/12/24 04:14:28
Vista対応はどうなってんの?


305:265 ◆v8todlW3ks
06/12/26 06:53:47
>>305
Vistaに1.5.3入れたらコントロールパネルを開くとExplorerが死ぬようになった。
さらにサーバーマネージャが正常動作していないっぽい。
Vistaで使うなら2.0を入れた方がよさそう。

2.0でもVista上ではローカル接続ができない(セッション0問題?)。
localhostや127.0.0.1でのループバックアドレスによる接続は可能。

306:NAME IS NULL
06/12/26 09:14:17
ガーン。2.0に強制逝行か。

アプリの修正無しでいけるかなぁ?
IBX使ってるんだけど。

307:NAME IS NULL
06/12/26 10:54:38
>>305
インストールしたのはSSですよね?
CSでも同じ状況になるのでしょうか?

308:NAME IS NULL
06/12/26 12:07:10
>>305
インストール時にコンパネの追加チェックを外せば大丈夫です。

309:NAME IS NULL
06/12/26 13:49:41
>>308
それだけの問題なんだ。

ところで2.0だと問題が発生しないのはなぜ?
2.0開発がVi$ta対応だからってこと?

310:NAME IS NULL
06/12/26 14:41:53
Firebird2Control.cpl の作成方法が変わったんじゃない?
それか、インストールシールド?を変えたとか。

311:NAME IS NULL
06/12/26 16:02:38
それならFB1.5のインストローラーも直して欲しいおね。


312:NAME IS NULL
06/12/26 22:00:20
しかしVistaって糞だな

313:NAME IS NULL
06/12/26 22:43:13
>>306
IBXはちゃんと動作しますよ。
IBConsoleも正常、Delphiで作ったアプリも正常動作しています。
もちろん再コンパイル/手直しなしで。

>>308
普段コンパネ使ってないから外しても問題ないですね。
いい事を教えて頂きました。

>>311
1.5系の次期バージョン1.5.4で直るといいんですが。
URLリンク(www.firebirdsql.org)
# ユーザ会もサイトで情報流せばいいのに、何故ML?

>>312
重要な変更点があるのにあまり知られていませんよね。
雑誌は提灯ばっかで問題点は取り上げないし。

# すいませんねぇ...通りすがりだったのをすっかり忘れて
# 某所のトリップ付けたままでした。

314:NAME IS NULL
06/12/27 10:05:09
某スレで見たんですが、皆さん
URLリンク(fblib.altervista.org)
って使ってますか?

サンプルコードもうpしてくれたようです。 → URLリンク(vipdelphi.run.buttobi.net)


315:NAME IS NULL
06/12/27 15:37:22
「某スレ」って BDS2006 のスレかな?

FBLib、面白そうだけど、ソースを見る限り文字列の受け渡しはことごとく
String でやっていて、WideString は一切考慮していないようだ。
UNICODE_FSS のデータベースには FBLib は使えそうにない。

俺は現時点では Delphi + Firebird での案件を複数製造中だが、今のところ
SJIS_0208 で作っているので IBX でやっている。でも近いうちに FIBPlus の
ライセンスを購入して UNICODE_FSS の世界に行くと思う。


316:NAME IS NULL
06/12/28 08:46:49
>FIBPlus

FreeIBComponentsの派生なんだ。

やっぱ、Plus側が正式にFBをサポートしているってことかな?



317:315
06/12/28 11:16:14
FIBPlus は正式に Firebird 2.0 をサポートしている。もちろん UNICODE_FSS の
読み書きもできるし、配列も使える。1 ライセンス 235 ユーロ(約 35,000 円)
もするが、本格的に Firebird を使って商用プログラムを作るのであれば元は
取れるんじゃないかな。ただし英文マニュアルやサンプルコードを読むことを
厭わないのが条件かと。

管理ツールは IBExpert のパーソナルエディションがあれば、ほかは何も
いらないと思う。

フリーの Firebird コンポーネントでユニコードの読み書きができるものは
俺は知らない。


318:NAME IS NULL
06/12/29 00:28:44
データベースがunicodeであろうとsjisであろうと
操作するクライアント側のキャラクタエンコーディングは
クライアント側の処理系に合わせれば別にいいんじゃない?
サーバ側がデータベース保存時に変換してくれるわけだから。
delphi(win32) 使ってるんなら sjis で特に問題はないと思うけど違う?

319:NAME IS NULL
06/12/29 00:52:06
変換が完璧じゃないからって理由じゃないのかな?

1.5.4のRC1が出たようだね。

320:NAME IS NULL
06/12/29 09:22:49
315はユニコードのことがあまり分かってない気がするのは俺だけ?

321:NAME IS NULL
06/12/29 15:43:05
>>296

こんなのもあった。
URLリンク(www.sqlite.org)

322:315
06/12/29 16:25:57
>>318 >>320
俺、何か勘違いしている? 例えば「?」(U+33A5)のように SJIS でコードが
割り当てられていない文字を SJIS_0208 のデータベースには入らないし、
Delphi の string では扱えないから WideString で受け渡しする必要が
あるよね?

何かヘンなことを言っているようなら指摘をお願い。

323:315
06/12/29 16:27:00
うが、書き込み確認画面ではちゃんと表示されたのに。「例えば」の後ろに
書いた文字は立方メートルです。

324:NAME IS NULL
06/12/30 01:56:35
そもそも表示できない文字なら(ry

325:NAME IS NULL
06/12/30 10:35:53
>>322
「WideString=ユニコード」ではないとだけいっておこう

326:NAME IS NULL
06/12/30 17:42:45
WideString = UTF-16
UNICODE_FSS = UTF-8
ってことでしょ。

327:NAME IS NULL
07/01/04 09:09:34 XbcnlGt1
>>319
>1.5.4のRC1が出たようだね。

Vi$taでの動作報告キボン。


328:NAME IS NULL
07/01/10 22:44:14 nlkGW7YX
Firebird-generalによると、Firebird 2.0の日本語インストーラの
開発しているんだって。まだテスト版だけど。

テスト版のアップ先
URLリンク(www.geocities.jp)



329:NAME IS NULL
07/01/12 00:46:09
a.gdbとb.gdbがあってa.gdbの中のtableAののデータをb.gdbのtableAにコピーしたいのですが
IBExpertとかのツールを使って出来ますか?
プログラムを書かないと無理でしょうか。


330:NAME IS NULL
07/01/12 03:12:44
>>329

FBCopyなどいかがでしょうか?
URLリンク(fbexport.sourceforge.net)

331:NAME IS NULL
07/01/12 20:49:27
>>329
IBExpertならメタデータの抽出かTableDataComparerでできると思うよ



332:NAME IS NULL
07/01/12 21:34:37
>>330
どうもです。
コマンドラインツールですか、後でr試して見ます。

>>331
テーブルを開いてスクリプトのエクスポートでinsert文の羅列を作ってコピー先のデータベースでスクリプトを実行してできました。


333:NAME IS NULL
07/01/14 23:43:16
Javaアプリから動的にCREATE DATABASAEしたいんですが、
もしかしてできませんか? jdbc:firebirdsql:ほにゃらら
で存在しないDBは指定できませんよね?

334:NAME IS NULL
07/01/15 16:27:31
C#2005を使おうと思うのだが、.Net Data Provider2.xは
どのFirebird対応?
1.5.x?2.0.x?

335:NAME IS NULL
07/01/16 17:18:37
当方
  VS 2005 C#
  .NET Data Provider 2

Firebird 1.5 でも Firebird 2.0 でも動いてます。


336:NAME IS NULL
07/01/16 19:02:23
両方対応?
もうバージョンがありすぎてわけわかめ
とりあえずFirebird1.5.4で動いてるからいいか・・・

337:335
07/01/17 21:36:49
今、開発中の案件で、去年年末まで
    VS 2005 C#
    .NET Data Provider 2
    Firebird 1.5
で開発してて、年末 Firebird 2.0 正式リリースしたから
試しに差換えてみたら問題なく動いたからそのまま開発続行。

ところで .NET Data Provider 2 だけど、リファレンスどうりに
FirebirdSql.Data.FirebirdClient.FbTransaction の
    .BeginTransaction()
    .Commit()
    .Rollback()
やってみるんだけど、なんかちゃんと排他の
トランザクションしない。
336 さんはそういう必要があったら気をつけて下さい。

長文、失礼しました。

338:NAME IS NULL
07/01/18 00:28:22
>>337
まじ?

ホントにそうなら気をつけようがないよ....

339:NAME IS NULL
07/01/18 15:11:26
>>337
トランザクションしないのは1.5?2.0?それとも両方?

接続文字列のIsolationLevelとか
BeginTransactionメソッドの引数のIsolationLevel、FbTransactionOptionsとか
関係ありそうだけど

たぶん実装されてないんじゃない?

340:NAME IS NULL
07/01/18 17:47:14
>>333
こうするとできるらしい。

FBManager fbManager = new FBManager("PURE_ JAVA");

fbManager.setServer (DB_SERVER_ URL);
fbManager.setPort( DB_SERVER_ PORT);

fbManager.start( );
fbManager.setForceC reate(true) ;
fbManager.createDat abase(DATABASE_ PATH, DB_USER, DB_PASSWORD) ;

341:NAME IS NULL
07/01/18 22:59:26
>>339
>>たぶん実装されてないんじゃない?

んな馬鹿な?
だって、それぞれトランザクション制御のAPIを内部で呼ぶだけでしょ。
実装しない理由がわからない。

>>337
詳細求む

342:NAME IS NULL
07/01/19 00:05:18
>>6

ここから始まるスレッドが参考になるかも。
URLリンク(groups.yahoo.co.jp)

Linuxも、ということなら、Truecryptも使えるかな?
URLリンク(www.truecrypt.org)

343:335
07/01/19 19:52:36
なんかアクセス規制かかっててレスできませんでした。
で、> 337 は、ちょっと説明不足でした。

コミット、ロールバックは普通にできるんですけど
テーブル ロック、レコード ロックができなかったんですよね。

排他処理用テーブルをテーブル ロックなりレコード ロックなりして
悲観的排他制御しようとしたらできなかったから、
別の方法で悲観的排他やって今回はすませました。

それ以外の動きは私は困りませんでした。

    .NET Data Provider 2
    Firebird 1.5
で試した時の話なんで
    .NET Data Provider 2
    Firebird 2.0
なら、もしかしたら大丈夫なのかな?
今度、時間があったら試してみますかね。

339 さんの言うように、ひょっとして実装されて
ないのかとも思ったんですが、リファレンスには
パラメータの事とかちゃんと書いてあるし・・・・・

どなたか、もし試す機会があって、ちゃんとできたら
どういう設定とプログラムでできたか教えてもらえますか?

344:NAME IS NULL
07/01/20 01:35:34
>>340
サンクス!

FirebirdのサイトでFBManagerで検索したらFAQにありました!
Sample Web Apps なんてタイトルじゃ見つけられらないよ・・・。

345:NAME IS NULL
07/01/29 10:14:22
Firebird 2.0.1 RC1が出た模様。
URLリンク(www.firebirdsql.org)

346:NAME IS NULL
07/01/30 17:01:25 eM5iBTh+
FB1.5を使ってた方はFB2.0に移行するもんなんでしょうか?

347:NAME IS NULL
07/01/30 17:07:57
個人的にはまだ移行してない

348:NAME IS NULL
07/01/31 07:58:07
>>346

既存のアプリで、速度的にも、機能的にも問題ないのなら
わざわざ移行しなくてもいいんじゃない?

349:NAME IS NULL
07/02/01 08:01:06
>>313

1.5.4では、まだ直っていません。バグトラッカーに登録されています。
URLリンク(tracker.firebirdsql.org)

350:NAME IS NULL
07/02/03 00:55:43
>>343

そもそもテーブルロックってFirebird自身に機能がないんじゃない?
どんなSQLが発行されるのを想定してる?

351:NAME IS NULL
07/02/03 15:44:08 p4r1nQO3
一応、SQLレベルではできるんだけどね

URLリンク(firebird.skr.jp)
これの、テーブルの予約というやつ。(RESERVING 節)

記憶なんで確かじゃないけど、BCC付属のやつで発行したら効かなかった覚えがある。
多分、APIレベルでトランザクションが実装されてるので、チェックしてるのか、
もしくは、内部的な SQL の発行方法によるのかも。
そのときは、isqlでは間違いなく動いたよ。

352:NAME IS NULL
07/02/08 06:20:22
>>351

isqlではできますね。
内部的には、isc_start_transactionのisc_tpb_protectedを指定するので、
通常のRDBMSが、以下の順番で指定するのとは対照的に、APIの引数を準備するために
(2)->(1)の順番で指定するか、(1),(2)を同時に指定する必要がありますね。

(1) トランザクションスタート
(2) テーブルロック
(3) コミットorロールバック

プロバイダー、まだ入れてないので、入れたらみときます。

353:NAME IS NULL
07/02/13 12:34:11
JaybirdでFirebird2.0に接続してるんですがちょっと変な現象になります。

デフォルトキャラクタセットSJIS_0208のDBにCHAR(1) CHARSET ASCII
のフィールドを作って、lc_ctype=SJIS_0208で接続すると、getStringで取れる
値が2バイトになってしまいます。1.0でも1.5でも1バイト取れてたんですが、
2.0では2バイトになります。

なんかの仕様変更でしょうか?

354:NAME IS NULL
07/02/20 11:15:24 HIBuGGic
みんなVi$taで使ってますか?

355:NAME IS NULL
07/02/20 16:31:34
>>354

ロシア人が言うには、こんな感じ。
URLリンク(ibdeveloper.blogspot.com)

356:NAME IS NULL
07/02/21 12:54:41
訳きぼん

357:NAME IS NULL
07/02/22 00:45:31
簡単だけど訳してみた。

「FirebirdはWindows Vistaでは動くの?」
はい!動きますよ。

358:NAME IS NULL
07/02/22 12:56:21
>>354

ていうか、Vi$ta自体使ってない。

359:NAME IS NULL
07/02/26 09:06:13 gv7eFO9d
ここで質問していいのかわからないのですが、
FirebirdのSQLで下記サイトのようにfrom句の後にselectを使用することは出来ないのでしょうか?
出来ないのであれば、Firebirdで他に同様の方法がありますでしょうか。
URLリンク(www.techscore.com)

やりたいことは集計関数で得た行を、更に別条件で集計したいのです。

360:NAME IS NULL
07/02/26 12:40:06
>>359

Firebird 2.0ならできるよ。Firebird 1.5以前は無理。

361:NAME IS NULL
07/02/26 21:45:11
1.5までどうしてもやりたいなら、ストアドでも組まないと駄目だね
ストアド内で生成した文字列をSQLとして解釈して実行する機能を使うとかすれば
わりと色々できるけど、面倒ではある

362:359
07/02/27 08:11:34
>>360-361
ありがとうございます。
まだストアド使ったことなかったので、昨日色々調べてストアドでやってみました。
結果、うまくいきました。どうもありがとうございました。

363:NAME IS NULL
07/03/02 08:22:08
Pascal Data Objects
URLリンク(pdo.sourceforge.net)

364:NAME IS NULL
07/03/02 11:07:10 0ZTZtv0+
Firebirdでrdb$relation_nameとかのrdb$・・・・の解説ってどこかにありますか?

365:364
07/03/02 13:24:10
すいませんInterbaseのマニュアルをDLして自己解決しました。

366:NAME IS NULL
07/03/06 12:40:42
viewについて教えてください。
SQLのSELECT文で普通のテーブルとビューを組み合わせて使用すると
結果が返るまでにとても時間がかかるのですが、
解決方法ありますでしょうか。

367:NAME IS NULL
07/03/06 17:35:37
>普通のテーブルとビューを組み合わせて使用すると

ビューになってねー

368:367
07/03/06 17:36:09
ヒント:ビューの作り直し

369:366
07/03/06 17:52:15
あれ...なんか使い方おかしいですかね?
select T1.CODE,V1.VALUE
from TABLE1 T1 left join VIEW1 V1 on (V1.CODE=T1.CODE)
みたいな使用方法なんですが。

370:NAME IS NULL
07/03/08 16:34:30
ビューとテーブルをJOINするとビュー側はインデックス使わないんじゃない?
出したい結果を出すビューをあたらしく作った方がいいよ。


371:366
07/03/09 12:27:48
そうですか。ところでちょっと気になったのですが、
select V1.CODE,V1.VALUE from VIEW1 V1
とやるとすぐに結果は返りますのでビュー自体の反応は悪くはないです。
>>369 の例をやると、T1のレコード件数に比例して遅くなるような気がします。
つまり、T1の件数分だけV1のオープンクローズを繰り返している感じがするのです。
これが事実だとしたら、抑制するようなスイッチとかあるのでしょうか。

372:NAME IS NULL
07/03/09 12:40:14
手間をかける方向性が間違ってるな。
そんなこと調べてる間にVIEW作り直した方が早いじゃん。

373:NAME IS NULL
07/03/09 18:37:37 05+kEELh
>>抑制するようなスイッチとかあるのでしょうか。

未だかつて、見たことないっす。

374:370
07/03/09 23:46:07
>>371
えと、だからですね・・・。

VIEWの中身はただのSELECT文だからその中ではインデックスは使われている
わけですよ。だからVIEW自体の表示は早い。ところがVIEWの出力結果は
インデックスのないテーブルみたいなもんなので、VIEWとTABLEをJOINすると
VIEWの全件検索が行われるわけです。>>369の例でいえば、V1.CODEは
元になるフィールドはおそらくT2.CODEみたいな何かのテーブルの主キーだと
思いますのでVIEWの中ではインデックスが有効に働いていますが、VIEWとして
出力された時点ですでにT2.CODEではなくインデックスのないV1.CODEになって
いるわけですからT2.CODEのインデックスは使われない。その結果どこにT1.CODE
と同じ値を持つV1.CODEがあるのかわからないため全件なめて探し出すことになって
遅くなる。だから、VIEWはあくまで最終出力用として使うべきで、SQLをスリム
に見せるためのグループ化として使うのはパフォーマンスという観点から見ると
好ましくない、と言うことです。

対策としては、VIEWの中身がT2とT3のJOINだとしたら、あたりまえにT1とT2とT3を
直接使ってSQLを書く。VIEWにしたいんならその結果をVIEWとして出力する。
もしくは場合によっては結果セットを返すストアドにするとかいう方法も有効
かもしれない。

俺の理解ではそういうことです。間違ってたら他の人フォローよろ。

375:NAME IS NULL
07/03/11 20:41:33 kknmZXvK
>>356

ここにあった。
URLリンク(blog.kimuradb.com)

376:NAME IS NULL
07/03/14 00:53:54 jSDKBnm7
ユーザー会のページに書いてあったが、FlameRobinの日本語版だって・・・
まだ途中のようだが。

URLリンク(www.geocities.co.jp)

377:NAME IS NULL
07/03/15 00:00:16
こんなんもあるみたいよ。
URLリンク(blog.so-net.ne.jp)
メニューとか日本語じゃないけど

378:NAME IS NULL
07/03/16 00:02:56
Windows版なんだけど、一般ユーザーでも使えるようにするにはどうすればいい?
もしかして管理者権限ないと駄目なのかな・・・

379:NAME IS NULL
07/03/16 03:10:07
どういうこと? 一般ユーザでインストールできるかどうかってこと?
だったらAdministratorsの権限がないとインストールが出来ないのは
Windowsのサービスなら当然だと思うよ。

DBへの接続の話なら一般ユーザでもできるよ。

380:NAME IS NULL
07/03/21 11:34:56
管理ツールはIBExpert一択で良いと思うんだけど、なんでまた
次から次へと出てくるんだろ?

381:NAME IS NULL
07/03/21 14:50:26 hV0DLcWl
テーブル名を変更するには、どういう SQL 文を使えば良いですか?
alter table hoge rename to hoge2 だとエラーになりますが

382:NAME IS NULL
07/03/21 20:22:29
>>380

マルチプラットフォームで動かしたい→Flamerobin
同一GUIで各種DBで動作させたい→DBWorkbench
クライアントをUnicodeで動作させたい→BlazeTop

その他いろいろと思惑があって、次から次へとでてきてます。

383:NAME IS NULL
07/03/22 10:57:11
>>381
URLリンク(firebird.skr.jp)
alter table でテーブル名の変更はできないはず。新しい名前でテーブルを
作って、insert into ~ select でデータをコピーして、古いテーブルを
drop するしかないと思う。

384:NAME IS NULL
07/03/22 18:37:46
>>383
ありがとうございます。
やっぱできないんですね。

385:NAME IS NULL
07/03/23 10:36:24
ここで質問していいのかちょっと不安なのですが、よかったらご教授下さい。

現在自社(中小)でFirebird1.5+Delphiで簡単な生産管理を行っています。
社員の要望を受けているうちに機能が増えて徐々に使用するユーザーが増えてきました。
しかしFirebirdのサーバーを入れているマシンは貧弱なPen3-550でOSもWinXPです。
ハードは新しくしようと思うのですが、OSをどうしようか悩んでいます。
WinXPでは当然接続数の上限から、この先不都合が発生すると思われますが
WindowsSrver2003を導入するほどのスキルも無いし、コスト的にもちょっと大袈裟かと思ってます。
同時接続は最大で20クライアント程度ですが、この程度の規模であればサーバーは
どういったものが適切なんでしょうか?

386:NAME IS NULL
07/03/23 15:41:56
>>385
確かにWindowsXPだとライセンス上、10台までしか接続できないけどそういう話?
単にパフォーマンス上の懸念なら、その規模ならWindowsXPでも問題ない。

WindowsServerって言ってもドメインだのADだの構築するんでなけりゃ、必要となる
スキルはXPと変わらない。
コストがかかるのが嫌ならLinuxや*BSDにするのがベスト。

でも動かしてるのが業務上クリティカルなアプリケーションで、かつ自分にサーバ構築の
スキルが無いという自覚があるなら、アウトソースしる方向で考えないと自分の首絞めるよ。

387:385
07/03/23 16:05:53
>>386
同時接続数について詳しくないのですが、DBサーバーやWebサーバーへの
接続についても10接続を超えると、それ以上接続できなくなるのでしょうか?
それともライセンス違反というだけですか?
一応Linuxも視野に入れて検討しており、とりあえず別のハードで試験運用して
みようかなと思ってます。


388:NAME IS NULL
07/03/23 16:35:12
>>387
ライセンス違反と言うだけ。実際に接続できないなんて事はないよ。

389:385
07/03/23 16:38:24
>>388
そうなんですか?んじゃライセンスを守るという意味で
接続数をどうやって管理すればいいんだろ・・・
実際の運用では同時に10人以上の接続はかなり稀なケースなんで
ハードだけ増強してOSはそのままでもいいか。

390:NAME IS NULL
07/03/23 19:58:38
>>387

WinXP SP2からTPC/IPのドライバレベルで、10に制限されるようになったから、
SP2にして運用していれば、少なくともライセンス違反にはならないとおもうよ。
URLリンク(itpro.nikkeibp.co.jp)

391:NAME IS NULL
07/03/24 00:57:27
>>385
スキルがないと言われるとどうしようもないが、XPProはありえないと思うよ。
金がないから本格的なサーバは立てられないしオーバースペックってこと?

DBのサイズがわからんけど、数100メガ程度だと仮定すると、俺なら
OSなしでスッピン10万程度のミドルタワーのショップブランドPC
(AMDでいうと4000+程度)にメモリを2Gくらいにして、HDDをOS用×1、
データ用×2(オンボードRAID1)にして合計15万くらい。それにLinux入れる。
よっぽど予算が厳しいならCPUは落としてもいいと思う。メモリはDBサイズ次第。

Firebirdはデュアルでも効率はあまりあがらないから、金がないならデュアル
CPUはもちろんデュアルコアである必要性もあまりない。2003Serverは
使ったことないからわからんが、リモート管理できるのかな? 2000Server+
PcAnywhereでやってたことあるけど何かとめんどくさいし、Firebird専用ならば
Windowsにこだわるメリットは特にないからね。スキルだけか。

392:NAME IS NULL
07/03/25 15:03:56
デュアルの場合、CS入れるとパフォーマンスも少しは上がるかな?
接続は遅くなるかもしれないけど

393:NAME IS NULL
07/03/25 21:13:10
>>392
そう思って前にやってみたけど変わらんね~。
SMPでの性能向上は3.0とかその後に期待かな?

394:NAME IS NULL
07/03/29 00:54:30
1st Firebird Japan Conferenceだって。
参加者には日本語CD-ROMを提供だとさ。
URLリンク(tech.firebird.gr.jp)


395:NAME IS NULL
07/04/02 19:55:21
へぇ。まだ何かやる気あったんだ>ユーザ会

396:NAME IS NULL
07/04/02 21:15:24
>395

今の理事長は毎月セミナーやっているぞ。多少はやっているらしいぞ


397:NAME IS NULL
07/04/03 20:55:17
でもユーザ会のトップページ左側のメニューには「What's new in Firebird v1.5」。
ページ左上のカウンタはページビューではなくユーザ会員のアカウント数か?
そんなものを表示しておく意味が分からない。
トップページ右上のお知らせは 2006/1/6、「Firebird の特徴 (Factsheet)」
ページ右上のお知らせは 2005/12/4。もう 4 月なのに。
ダウンロードページは 2.0RC1 が最新で、おまけにページ右上は「Firebird 1.5.3 が
リリースされています」と来たもんだ。

あのページをどうにかする気はないのだろうか。普及させるにはまずウェブ上の
文書リソースが大切なのはオープンソースでは常識だと思うのだが。それとも、
とにかく有料サービスに引き込もうとしているのか。

誰か、今月のカンファレンスに行って、「国内で一番詳しいドキュメントが
2ch 有史が作った Wiki であることをどう思いますか」って聞いて来てくれ。

398:397
07/04/03 20:57:15
s/有史/有志/

# 俺も Firebird を便利に使わせていただいている一人なので、
# よさがもっと認識されてほしいと思っているんよ。
# 気を悪くしたらゴメンよ。> ユーザ会の中の人

399:NAME IS NULL
07/04/04 00:26:14
おれもユーザー会には頑張ってほしいと思ってる。

ただ企業系の人中心なせいか、他のオプソコミュニティとの
温度差というか空気の読めなさというかスノッブな雰囲気を
感じるのでもっと考えて仲良くしてほしい。オプソは連携が要だから。
あと、流行るまでは商売の匂いは消す努力をしたほうが・・・。
その辺はユーザー会以外に別のFirebirdコミュニティが立ち上がって
しまうと手遅れだから、その前になんとかしてほしいとせつに願う。

400:NAME IS NULL
07/04/04 10:53:28
日本語インストーラなどの開発もやり始めたし、多少はまともに
活動始めたと少し評価しているところかな。>ユーザー会

401:NAME IS NULL
07/04/06 21:35:54
日本医師会のオープンソース医療ソフトでFirebirdのユーザーが1万4000に
URLリンク(itpro.nikkeibp.co.jp)

402:NAME IS NULL
07/04/09 03:56:11
日本医師会、開発ソフトウェアにオープンソースDB「Firebird」を採用
URLリンク(www.atmarkit.co.jp)

403:NAME IS NULL
07/04/10 13:12:16
interbaseのスレが見当たらないのでこちらで質問させてください。
IB4.2でNULL値のフィールドを0として扱ううまい方法はないでしょうか。
例えば、
SELECT A.CODE,(A.DATA - B.DATA) DATA FROM A
LEFT OUTER JOIN B ON B.CODE=A.CODE
WHERE (A.DATA-B.DATA)>100
のようなSQLでBにレコードがない場合WHERE条件に引っかからないのでB.DATAがNULLの場合
0として計算させたいのです。

404:NAME IS NULL
07/04/10 13:28:14
ibどころかfb初心者だからうまい方法は知らないけどそのまま安易に
a.data - case when b.data is null then 0 else b.data end
は使えないのかな

405:NAME IS NULL
07/04/10 14:10:32
nvlって無かったっけ?

406:NAME IS NULL
07/04/10 14:10:52
>>403
COALESCE

ソースはfirebird nullでググれば出てくるよ

407:NAME IS NULL
07/04/11 00:53:48
俺の記憶によると>>405-406のアドバイスはIB4.2には
無効じゃないかと思った。素直にストアドじゃないかな。

408:NAME IS NULL
07/04/11 07:35:29
>>407

っか、ストアドじゃなくてUDFだろ。
4.xならrFunc使ってくれ、
URLリンク(rfunc.sourceforge.net)

409:NAME IS NULL
07/04/11 11:38:14
>>404-408
どうもありがとうございます。
caseとかnvlとかCOALESCEはIB4.2には無いのでできませんでした。
408さんのUDFを試してみることにします。



410:NAME IS NULL
07/04/11 16:37:47
>>409
WHERE (A.DATA - B.DATA) > 100 OR (A.DATA > 100 AND B.DATA IS NULL)

でも可
そもそも計算に使用する項目はnot nullであるべきだと思うのだけど。

411:407
07/04/12 01:08:27
>>408
いやUDFも互換性の問題あってIB4でうまくいくかどうかわからんから
ストアド書いて、中でIF文で分岐してSUSPENDすればいいんでない
って思ったんだ。

412:408
07/04/12 09:06:39
おー、そういうやりかたもあるね~。
うっかりしてた。スマソ。

413:NAME IS NULL
07/04/16 09:31:33
「オープンソースDBMSのFirebirdを約200サーバーで使用」---1st Firebird Japan Conferenceより
URLリンク(itpro.nikkeibp.co.jp)

カンファレンスに行った人、レポートきぼんぬ。

414:NAME IS NULL
07/04/16 12:50:36 TFgXspdw
Firebird2.0SuperServerを業務で使用したいと考えています。
「同時接続ユーザー数」に関して、具体的な数値として把握したく、
ご教授いただけませんでしょうか。
または、資料のあるHPを教えていただけませんか?

なおサーバーOSはWindowsServer2003です。
ユーザー数はOSのクライアントライセンスは今回は除外し、DBのみです。

よろしくお願いします。

415:NAME IS NULL
07/04/16 15:51:10
特に、使用に関してライセンスの制限というのはないと思うんだけど。
というか、wiki の FAQ に書いてあるしソースへのリンクも張ってある。
URLリンク(firebird.skr.jp)
あとは、メモリやOS等の制限によるのでは?
大量につなぐと、マシンパワーも足らなくなってきて加速度的に重くなってくるだろうし。

416:NAME IS NULL
07/04/16 22:01:24
「オープンソースDBMSのFirebirdを約200サーバーで使用」---1st Firebird Japan Conferenceより
URLリンク(itpro.nikkeibp.co.jp)

417:NAME IS NULL
07/04/16 23:21:27
Firebirdで3つ上のレスを検索する方法は無いのでしょうか

418:NAME IS NULL
07/04/17 01:56:02
レスって?

419:414
07/04/17 08:53:40
>>415
ありがとうございます

420:NAME IS NULL
07/04/17 22:55:51
>>414
URLリンク(groups.yahoo.co.jp)


421:NAME IS NULL
07/04/17 22:58:30
>>416
記事中に「FireBird」だの「Firbird」だのという記述があちこちにあるなあ。
記者の名前に反して信頼できない記事だ :-)

422:NAME IS NULL
07/04/18 09:15:40
>記者の名前に反して

ワロ

423:NAME IS NULL
07/04/18 11:13:26
IB4.2で作成したDBファイルをFB1.0でcreate table, alter table等の修正を加えてデータを追加し
またIB4.2環境に戻したところ、修正を加えた部分のデータがみれない(テーブルは見えているが中身が空)のですが
FBで修正をしたらIBには戻せないのでしょうか?
修正はdelphi付属のSQLエクスプローラ+BDE5.01で行いIB環境はIB4.2+BDE4..0です。


424:NAME IS NULL
07/04/18 14:08:13
IBで同じ構造のテーブル作ってBatchMoveでGoだ

425:NAME IS NULL
07/04/18 16:01:22
手元にIB5.6以降しか無いので検証できないけど、
FB1.0.3はIB6.01互換って事になってるから
仮に、同じIB同士だとしても4.2と6.0ぐらい離れていたら
そういう現象が起きてもおかしくない気がする。

426:NAME IS NULL
07/04/18 18:35:37 9dJ+PvZg
Windows Vista のコントロールパネルでエラーがどうこうっていうの、
どうやったら発生させることが出来ますか?

やっとVi$ta入手したので、FB1.5で発生するか見てみます。
FB1.5も複数バージョンあったり、FB2.0にすれば回避できるのかとか、
調べることいっぱいですね。
まとめサイトとかあれば。。。

427:NAME IS NULL
07/04/19 09:55:31
>>424
そうします。

>>425
そうですか、FBはIB互換だから大丈夫かなと思っていたのですが
今後は気をつけないといけないな…

ありがとうございました。

428:NAME IS NULL
07/04/19 10:16:55
遅レスだが、gdbそのものはいったん新しいバージョンで開いたら
古いバージョンでは開けなくなる。これはIBとFBをまたがってる
からという問題じゃなくて、IB同士やFB同士でも同じ。

FB1.0でバックアップ、IB4.2でリストアすればいけるハズ。

429:NAME IS NULL
07/04/19 10:31:01
>>426
vistaでFB1.5を普通にインストールするとコンパネが開けなくなります。
インストーラでコンパネに追加のチェックを外すだけで回避できます。


430:426
07/04/19 10:58:05
サンクス>>429

今ちょうどやってたところでしたが、その通りでした><

FB2.0にすれば良いのかなぁ。

431:NAME IS NULL
07/04/19 11:30:43
FBでクライアント何台くらいまで実用的に使える?
お前らの手がけたシステムで最高何台?


432:NAME IS NULL
07/04/19 15:02:22
>>430
ユーザー会が配布している日本語版インストーラの1.5.4ならOKだよ

433:430
07/04/19 17:34:51
サンクス>>432

英語も必要なんでFB2.0にします。


ところで、FBに限らず古いアプリでコントロールパネルにインストロールするアプリは結構エラー出てないですか?
ノー●●先生とか。
FBみたくアンインスコメニューが無い場合、コンパネが開けないからアンインスコできないんですが、どうしたら良いんでしょう?

434:433
07/04/19 18:37:08
ごめんなさい、勘違いでした。
ノー●●先生は悪くありませんでした。
やっぱ、FBのコンパネ操作がエラー起こすわ。

435:NAME IS NULL
07/04/19 18:47:19
>>431
うちはコネクションの数でいうと40~50くらい。Linux-SS。
そのうち20くらいはコネクションプールで待機中。
10くらいはC/Sで接続したまま何もしてない。
残りの10~20くらいがトランザクションを実行中。
DBのサイズは2G弱。

436:NAME IS NULL
07/04/21 23:59:11
Firebirdってこんなに使われてたんだ

 オープンソースソフトウェア(OSS)のデータベース(DB)と言えば、「MySQL」と「PostgreSQL」が有名だ。
しかし米企業によるワールドワイドの調査の利用シェアではPostgreSQLが11%、MySQLが40%となってお
り、MySQLと対抗する勢力として「Firebird」が39%ものシェアを獲得しているという。

URLリンク(japan.zdnet.com)

437:NAME IS NULL
07/04/22 11:29:36
へえ、そんなに使われてるんだ
僕は以前、どのDB使うか検討したときに
ユーザ会のHPしょぼいんでFirebird使うのやめたけどw
こっちにすればよかったかな、開発はDelphiだったし

438:NAME IS NULL
07/04/22 12:03:04
IBから結構乗り換えてるじゃないかな?
IBは商用のデータベースとしては古いし安かったから、米国でも中小企業では結構使われ
てたみたいだよ

439:NAME IS NULL
07/04/23 08:55:53
IBといえばロシアだろ常考・・・
って認識は古いのか?

440:NAME IS NULL
07/04/23 09:46:44
>IBといえばロシアだろ常考・・・

kwsk

441:NAME IS NULL
07/04/23 11:16:26
Delphiと言えばロシアだからな、IBが幅を利かせるのは必然だわな

442:NAME IS NULL
07/04/23 14:21:09
>Delphiと言えばロシアだからな

いや、その通りだけど、日本だって、うわさでは中国だってDelphiだお。
シェアがどうこうじゃなくて、多く使われてるよ。

443:NAME IS NULL
07/04/23 15:28:48
ブラジルもDelphiだよ。まだまだ粘る。

444:NAME IS NULL
07/04/23 17:40:46
大阪民国だってDelphiだぜ

445:NAME IS NULL
07/04/23 19:04:58
DELPHI関連でぐぐってるとロシア、中国、英語ではない何かばかり引っかかるんだよな。


446:NAME IS NULL
07/04/23 22:05:52
英語圏では別の愛称があるから当然じゃん

447:NAME IS NULL
07/04/24 09:34:59 /YVJSirh
391-393でマルチコアとかマルチCPUの話があったけど2.0は未対応?
資料を探してるんだけど見当たらないorz

448:NAME IS NULL
07/04/24 09:50:06
>英語圏では別の愛称

kwsk

449:NAME IS NULL
07/04/24 09:51:30
>>447
リリースノートに思いっきり書いてあると思うが…

Classicは対応、Superserverは未対応

450:NAME IS NULL
07/04/24 11:18:05
>449
いまいち見つからない・・・スマソ
2.0.0リリースノートの10/151ページの「64-bit Support」なのかな?


451:NAME IS NULL
07/04/24 11:38:25
>>450
すまん、Quick Start Guide の4ページ目

452:NAME IS NULL
07/04/24 11:44:55 2lVze+Pb
>Classicは対応、Superserverは未対応

これって、SuperserverはIntel Dual Coreに未対応ってことですか?????

453:NAME IS NULL
07/04/24 11:56:20
●Classic Server
SMP (symmetrical multi-processor) support.
Better performance in case of a small number of
multiple connections that do not influence each
other.

SMP(対称形のマルチプロセッサ)サポート。
互いに影響しない少数の複数の接続の場合にはより良いパフォーマンス。

●Superserver
No SMP support. On multi-processor Windows
machines, performance can even drop dramatically
as the OS switches the process between
CPUs. To prevent this, set the CpuAffinityMask
parameter in the configuration file
firebird.conf.

SMPサポートでない。マルチプロセッサウィンドウズマシンで、
OSがCPUの間でプロセスを変えて、パフォーマンスが劇的に落ち
ることさえできること。Toはこれを防ぎます。そして、構成ファ
イルfirebird.confでCpuAffinityMaskパラメータを課されます。


SMPってマルチプロセッサらしいけどマルチコアも含まれるのかね?


454:452
07/04/24 14:47:52
>OSがCPUの間でプロセスを変えて、パフォーマンスが劇的に落ちることさえできること。

つまり、マルチプロセッサで異常終了したりデータを壊したりといったことじゃなくて、
パフォーマンスが落ちるってことね。

ちょっと安心しました。

455:NAME IS NULL
07/04/24 16:05:22
クラッシックサーバの場合は、1コネクト1プロセスでメモリ空間も別になるから
OSがデュアルコアでの複数プロセス同時実行をサポートしてるかどうかになる
のではないかな?
スレッドレベルまでの対応だと駄目だよね。

456:NAME IS NULL
07/04/24 21:57:59
ちょっと教えて下さい。

CpuAffinityMaskはいくつに設定したら良いですか?

wikiには1番目のCPUのみ使用するなら"1"を設定します。 1番目と2番目ならば"3"
って書いてるけど、SMP非対応だからデュアルCPUでも結局1つ分しか
使えないんですよね。

"1"でも"3"でもFirebirdの速度は変わらないけど、"3"にしておいた方が
他のプロセスの邪魔になりにくいって事なのでしょうか?


457:NAME IS NULL
07/04/25 10:38:00
1にしといてください。

458:NAME IS NULL
07/04/25 16:27:44
XMLデータを格納するときはどのデータ型が良い?
VARCHARだと長さ指定しないといけないから向かない気もするけど
BLOBとかかな?

459:NAME IS NULL
07/04/25 21:28:09
BLOBしかないでしょう。
ただオープンソースデータベースはXML関連の処理には向きません。

460:456
07/04/25 23:17:20
>>457
サンクス。

SMP対応になるまでは1にしときます。


461:NAME IS NULL
07/04/26 09:10:12
>459
thx

プログラムの設定をシリアライズしてDBに取っておきたいだけなんだけど何かやり方考えるか・・・
一定の長さでぶった切って保存するだけならそんな難しく無いだろうけどね

462:NAME IS NULL
07/04/26 09:17:29
XMLじゃないけど、扱うサイズに大きなムラがあるデータは、DBにはファイル名を格納して
内容はファイルで別格納しちゃうとかいうのもわりとやられてるよね

463:NAME IS NULL
07/04/26 09:52:34
>462
XMLと言いつつ実態はテキストファイル保存したいだけだからそれで良いのかも

ただ、個人的にはバイナリもDBに登録したい気もする
画像ファイルとかをDB入れない?って言ったら上の人間に
「やったこと無いからNG」
って却下されたw

あんまりBLOBって使わないほうが良いのかね?

464:NAME IS NULL
07/04/26 09:58:49
>>463
>「やったこと無いからNG」
そんな考えの会社は発展しないだろうね。

465:NAME IS NULL
07/04/26 10:18:22
>464
まぁ自分の会社じゃないから良いけどw

LOBとファイル共有&パス保存はどっちが扱いやすいのかは気になる所


466:NAME IS NULL
07/04/26 10:23:37
64KB以下のサムネイル程度の画像なら
BLOBでもいいんじゃないの。
やってみたことないし、サイズの根拠もないけど。

467:NAME IS NULL
07/04/26 10:31:50
BLOBの最大のネックは、
・標準SQLの範疇におさまらず、DBライブラリを結構意識する
・ODBCドライバにバイナリサイズが規定されておらず途中で無言でちょん切るODBCドライバが存在
ってことかなぁ。

でも、RDBにバイナリを入れる技術は持っといてもおk。

468:NAME IS NULL
07/04/26 10:50:17
>466,467
thx
業務のほうはやり方を少し考えてみるとして、BLOBはちょっと試しておいてみよう


469:NAME IS NULL
07/04/26 19:55:21
大きな画像だと圧縮ライブラリの使用とか考えないといけないしファイル共有の方がいいのかな。
ただファイル管理を考えないといけなくなるけどな。

>>466
その数字はひょっとしてメモ型の制限から?メモ型もBLOBのサブタイプだったし。

470:NAME IS NULL
07/04/27 21:26:33
ファイルで保存すればいい物をDBに突っ込むのにメリットは感じないなあ。
結局テンポラリファイルとして吐きだした後でクライアントに渡すのなら本末転倒だし
直接クライアントにデータを送る場合でもストリーミングやバイトサービングのような
配送機構が使えない場合もある。
そもそもファイルを扱うのはファイルシステムに任せるのが最も効率がいい。

また、Firebirdのように一つのデータベースを複数のファイルに分割できないDBMSでBLOBを
使うのは拡張性を考慮すると避けたい。

471:NAME IS NULL
07/04/28 06:55:00
分割できるけど、それとは別の話なのかな?

関係ないけど、DBのBLOBってInterBaseが発祥なんじゃなかったっけ。
大昔読んだIB関係のドキュメントでそんなのがあった記憶がある

472:NAME IS NULL
07/04/28 22:20:00 p8udZbFt
最近ファイル管理が面倒になってきたので、自宅鯖でDB導入しようとしています。
Firebirdが気になっているんですが、これって以下のスペックで何とか動きますか?
たまーにCGI(sh-script)からキー+順序指定で参照が来る位です。joinなし。レコード数も100件程度。
今後も同様の構造で~10000件程度のテーブルがいくつか増える程度。

CPU: PentiumPro 200MHz
Mem: 384MB (64MBx6)
OS: FreeBSD 4.10-STABLE

つーか、Firebird2 のビルドが gpre_static 作るとこでコケてる原因も調べなきゃあかんが…。

473:NAME IS NULL
07/04/29 06:24:31
キャッシュの量を調整すれば大丈夫では?
コンパクトなのも特徴のひとつだし

474:NAME IS NULL
07/05/01 11:32:53
>そもそもファイルを扱うのはファイルシステムに任せるのが最も効率がいい。

これは間違いだな。
Windowsでもファイル数が1万になるとエクスプローラーもまともに動かなくなる。
バックアップもままならない漢字。

というか、1ファイルを1ファイルとしてファイルシステムに任せるんならRDBの存在が消滅。

475:NAME IS NULL
07/05/01 12:04:10
>>474
> Windowsでもファイル数が1万になるとエクスプローラーもまともに動かなくなる。

そりゃファイルシステムじゃなくてシェルの実装方法の問題でしょうが…

476:NAME IS NULL
07/05/01 14:23:54
>そりゃファイルシステムじゃなくてシェルの実装方法の問題でしょうが…

違うだろ、エクスプローラーを使えるかどうかで運用できるかできないかが関わってくるだろ。

477:NAME IS NULL
07/05/01 15:32:14
言ってる意味がさっぱりわからん…orz

478:NAME IS NULL
07/05/01 15:48:29
477=バカで想像力貧困

479:NAME IS NULL
07/05/01 16:16:17
475はシェルの実装というかWinのエクスプローラの作りがタコと言いたいのでは

476はそれを読み取れず運用うんぬん言ってるから噛み合ってない気がする
それともWinのファイルシステム=エクスプローラだと思ってるのか・・・

とりあえず476の方がバカで想像力貧困だとおもふ

480:NAME IS NULL
07/05/01 16:21:43
>475はシェルの実装というかWinのエクスプローラの作りがタコと言いたいのでは
>476はそれを読み取れず運用うんぬん言ってるから噛み合ってない気がする

残念、間違いです。
エクスプローラーの作りがタコってことはどーでもいー問題。
しかし、エクスプローラーが動かなければ運用上困るという問題。

問題意識が無い477はふよー。


481:NAME IS NULL
07/05/01 17:19:26
>480
スレ違い

482:NAME IS NULL
07/05/01 17:57:46
>>480
> エクスプローラーが動かなければ運用上困るという問題。

Explorerが動かないというのが具体的に何を指すのか、またそれで運用上困るというのが
どういう事例なのか、その辺りがまったく想像が付かない

で、そこでなぜ
> 1ファイルを1ファイルとしてファイルシステムに任せるんならRDBの存在が消滅。

と、RDBMSの存在意義へと繋がっていくのか、何もかもがさっぱり意味不明。

483:NAME IS NULL
07/05/01 18:10:03
>>482
ごめん、自分で考えて。

その内容の詳細は企業秘密だから。

484:NAME IS NULL
07/05/01 18:11:02
>Firebird V2.1
>Downloads and related downloads and information regarding Firebird V2.1.
>Firebird V2.0
>Downloads and related downloads and information regarding Firebird V2.0.
>Firebird V1.5
>Downloads and related downloads and information regarding Firebird V1.5.
>Firebird V1.0x
>Downloads and related downloads and information regarding Firebird V1.0x.

 ↑

FB2.1とFB2.0は枝分岐しちゃったんですか?

485:NAME IS NULL
07/05/01 22:12:10
2.1はまだ正式リリースではないのでは?

486:NAME IS NULL
07/05/01 22:54:43
まだαです。>>2.1

487:NAME IS NULL
07/05/02 08:44:10
1.0と1.5、2.0が枝分岐したように、2.1も分岐するの?

488:NAME IS NULL
07/05/02 14:12:09
2.1と2.0はコア部分の変更はないので、分岐しないと思います。

489:NAME IS NULL
07/05/02 15:31:45
>>476

実装方法といっても、Win32でファイルの一覧取得して破綻するようじゃ、しかたねぇべ。

490:NAME IS NULL
07/05/02 15:32:57
まちがえた。

>>475

実装方法といっても、Win32 APIでファイルの一覧取得して破綻するようじゃ、しかたねぇべ。

491:NAME IS NULL
07/05/02 16:57:24
いくらWinとはいえ常識的に1万ファイル程度でこけるわきゃないと思うが・・・
とりあえずXPで試してみたけどエクスプーロラもプログラムからファイル一覧の取得も普通に動く

そして板違い

492:NAME IS NULL
07/05/02 17:45:02
>>474
ハードディスクにおそらく100万ファイル程あるけど
Explorer使っても特に問題ない。
ファイル数に関係なくXPのバグ?でたまにおかしなときがあるけど。

493:NAME IS NULL
07/05/02 17:59:06
>>492
それをエクスプローラーでコピー&ペーストしてみ

494:NAME IS NULL
07/05/02 18:09:21
>ハードディスクにおそらく100万ファイル程あるけど

これは全く事態が違う。

1フォルダを参照したところ、その下に1万フォルダ(か1万ファイル)あると、動きが止まる。

495:NAME IS NULL
07/05/02 18:17:03
>1フォルダを参照したところ、その下に1万フォルダ

もの分かりの悪い人が居るのでもっとハッキリ書くけど、直下に1万ファイルある場合ね。

例えば、1日に40ファイル登録すると1年(250日として)で1万ファイル。

496:NAME IS NULL
07/05/02 19:02:02
>>490
> Win32 APIでファイルの一覧取得して破綻する

ウソ付け、どんなやり方してるんだよ。
ちょうど一万ファイルあるフォルダに対してdirコマンド叩いてもなんの問題もない。

Explorer使う代わりに自前でインターフェイス作ればいい話だろ。
RDBMSなどまったく何の関係もない。

497:NAME IS NULL
07/05/02 19:37:32
人間に手動でエクスプローラを使って1万ファイルをコピペさせるってどんなシステムだ…
運用方法がそもそも腐ってる


498:NAME IS NULL
07/05/02 22:01:41
話がBLOBからどんどんそれていくな・・w

499:NAME IS NULL
07/05/04 16:28:00
ファイルに格納する時の命名規則とかちょっと大変そうだな。
時系列分割して別フォルダに保存とかした方が良さそうかな。
アップローダーとかどうしてるんだろ?

こういう場合の運用方法を考えとくのもDA、DBAとしては必要だからあながちそれてはいないか。

500:NAME IS NULL
07/05/04 17:06:25
ジェネレータがあるから、それを上手く使えば非常に面倒というほどではないのではないかと

501:NAME IS NULL
07/05/07 08:39:03
>ジェネレータがあるから、それを上手く使えば

非常に面倒だ罠

502:NAME IS NULL
07/05/07 17:45:14
リストアでDBファイルを分割しようとしてるんだけど

バックアップファイル:test.fbk 5MB

gbak -c "c:\test.fbk" "c:\test1.fdb" 3m "c:\test2.fdb"

でエラーが出る。↓
「size specification either missing or incorrect for file c:\test1.fdb」

サイズの指定がおかしいのかな?それともファイル名?

503:NAME IS NULL
07/05/07 20:02:47
サイズ指定が省略できるのは1番最後のファイルだけでは?
wikiのリファレンス見る限りでは。

504:NAME IS NULL
07/05/07 20:09:07
あっと、勘違いでした。
最初のはソースの指定か。

505:NAME IS NULL
07/05/07 22:39:30
>>502
リストア時のサイズ指定はページ数じゃないかな。

gbak -c -p 4096 "c:\test.fbk" "c:\test1.fdb" 768 "c:\test2.fdb"

ではどう?


506:502
07/05/08 08:51:14
>>505
ほんとだ・・・ちゃんと3M(4096byte*768page)でできた・・・(n’∀’)n
IBOConsoleのリストアもpagesって指定になってますね

ありがとうございました。

507:NAME IS NULL
07/05/09 09:44:41
WinXPのエンベデッドからCHARACTER SET指定でcreate database実行したら
「attach or create database CHARACTER SET SJIS_0208 is not defined」
って言われたんだけど何か設定するか入れないといけない?


508:NAME IS NULL
07/05/09 10:49:23
NONE っていうのはあるお。

509:507
07/05/09 11:00:01
SJIS指定したい場合は何かやんなきゃだめ?

510:507
07/05/09 17:14:34
サービス上げてisqlからならちゃんと発行できるのだが・・・
組み込みの場合は何か手順があるのかな

511:NAME IS NULL
07/05/09 17:53:52
>>507

「WinXPのエンベッド」ってWinXP Embeddedから?
それともWinXPでFirebirdのEmbedded Serverを使うの? どっち?

512:507
07/05/10 09:03:08
>511
FirebirdのEmbedded

513:507
07/05/10 14:57:07
自己解決、intlフォルダをコピー忘れてたとか言うつまらないオチでした


514:NAME IS NULL
07/05/10 16:12:22
DBの容量見積もり式ってどっかある?


515:NAME IS NULL
07/05/10 23:27:21
できないというのが定説。

516:NAME IS NULL
07/05/10 23:57:02
ORACLEみたいに最初に確保するタイプじゃないからな。
容量計算不要というか出来るだけ余裕のあるドライブにマップしとく、じゃないか?

517:NAME IS NULL
07/05/11 08:55:13
データ件数が結構多いみたいだからどれくらいになるか見たかったけど無理でつか
実際にデータ突っ込んでみた実績で測るしかないか

518:NAME IS NULL
07/05/11 14:36:58
そですね。insert時はアル程度予測可能か。

更新時や削除時は無理っぽい。

519:NAME IS NULL
07/05/14 00:12:20
スイープで自動的に未使用域は回収されるから二割増ぐらいで考えてればいいと思うよ。

520:NAME IS NULL
07/05/14 15:51:49
質問なんですがストアドの中でトランザクションって切れないんでしょうか?
WikiのSQLリファレンス見る限りCOMMITとかはPSQLが書いてないんですが・・・

よろしくお願いします


521:NAME IS NULL
07/05/18 09:31:08
たぶん切れません。セーブポイントもだめ。

開始時に内部的なセーブポイントは発行されているので、例外処理機能で、そのストアド内をロールバックすることはできます。

URLリンク(firebird.skr.jp)

522:NAME IS NULL
07/05/18 19:56:55
2.1aのmergeがまともにうごかねーぞ

523:NAME IS NULL
07/05/20 02:05:18
α版のソフトに文句いってもね....

524:NAME IS NULL
07/05/21 08:57:58
>521
なるほど、ありがとうございます

525:NAME IS NULL
07/05/21 18:14:03
先週turbo delphiを購入し、付属のInterBase7.5もインストールしました。
Oracle等の経験それなりにはありますが、InterBaseはど素人です。
で、困ってるんですが・・・
ローカルサーバとしていじってるときはうまくいっていたのですが、
本来の目的であるリモートサーバを登録しようとして、IBConsoleで色々
やってみたんですが、「対象のコンピュータによって拒否されたため、接
続できませんでした。」というエラーになってしまいます。
付属のPDFドキュメントを読んでその通りにやってるんですが・・・
接続設定の診断ツールのTCP/IPタブでみると、Pingは成功しますが、
gds_db(3050)とspecify port-3050は、「socketエラー10060接続が拒否
されました」となってしまいます。
どういうことでしょうか? ポートの使用可否の設定みたいなものがある
んでしょうか。ちなみにOSはwin2000serverです。
誰か助けてください。

526:NAME IS NULL
07/05/21 19:31:26
つ[Windowsファイアウォール]

527:525
07/05/21 20:03:35
>>526
帰宅してしまって自宅からのレスなので、Windowsファイアウォールを
使う環境がありません。、明日確認してみます。
レスありがとうございます。

528:NAME IS NULL
07/05/21 23:57:07
クライアントがXPでサーバが2000かな?
もしWindowsファイアウォールでなければ
サーバのservicesに3050が書かれてないとか。

529:525
07/05/22 10:13:54
Windowsファイアウォールって、LANのプロパティにある「TCP/IPフィルタリング」のことでいいですか?
”すべて許可する”になってます。
「IPセキュリティ」のほうは”IPSECを使わない”に設定されてます。

>>528
>サーバのservicesに3050が書かれてない
とはどういうことでしょうか?
サービスにはInterBase 7.5 gds_db Server、InterBase 7.5 (gds_db) Guardianがあります。
どちらも、サービスを開始しようとするとエラーになってしまいます。

わけわかりませんw 

530:NAME IS NULL
07/05/22 10:19:07
ヒント:TCP/IPのポートを空ける

531:525
07/05/22 11:39:02
>>530
うー、正直この辺りは素人同然なんです。
MSDNにある、”IPSec をポートのフィルタリングと認証に使用する方法”
URLリンク(msdn.microsoft.com)
とやらを参考にすればよいでしょうか? 一度を通読してみます。
見当違いだったらご指摘いただけると助かります。
教えて君状態で情けないやら申し訳ないやらw

532:NAME IS NULL
07/05/22 11:52:32
C:\WINDOWS\system32\drivers\etcのservicesファイルに3050を追加かな?
Win2kだとWINNTフォルダか

うちはこんなのが追加されてました
gds_db 3050/tcp #Borland InterBase Server

533:525
07/05/22 12:07:15
>>532
確認したらうちも同じものが追加されてました。
でも動かない。 泣けてくる~

534:NAME IS NULL
07/05/22 12:15:03
netstat -a でlistenしてるか確認
してるならどこかでブロックされている

かな?

535:NAME IS NULL
07/05/22 12:25:34
サーバからサーバ(自分自身)にリモート接続ってできてるのかな?

536:525
07/05/22 12:35:55
>>534
netstat -aに3050はでてきませんでした。

>>535
だめなんですか?
InterBaseのインストール時にサーバとクライアントを両方入れますよね?

537:535
07/05/22 12:54:16
できていない?

538:525
07/05/22 13:23:09
できてません。

539:NAME IS NULL
07/05/22 14:39:31
>>529
> どちらも、サービスを開始しようとするとエラーになってしまいます。
つーことは繋がらないんじゃなくてそもそもサーバーが起動してないんじゃないの?


540:525
07/05/22 14:51:01
>>539
これは
URLリンク(support.codegear.com)
に従って解決しました。今はサービスは開始しています。

541:NAME IS NULL
07/05/22 17:01:39
自分にリモート接続できないのならFWとかのネットワーク絡みじゃない感じがする

InterBaseは使ったこと無いから分からんけどサービスがちゃんと上がってないんじゃまいか
イベントログとか何も出てないのかな

542:525
07/05/22 17:14:03
リモートサーバの登録でサーバ名をlocalhostにすると動く。
つまりどういうこと?わけわからん。

Windows+inteBaseのよい解説書があったら教えてください。
amazonだとlinuxとかkylixの本しかヒットしない。
日本語のわかりやすいサイトでもいいですが。
もうお手上げっす。

543:NAME IS NULL
07/05/23 07:33:53
そこで、InterbaseからFirebirdにリプレイスだ

544:NAME IS NULL
07/05/23 12:06:36
IPを直で打ち込んだら通ったり・・・しないよね

545:NAME IS NULL
07/05/23 12:39:21
インストしたのがlocal InterBaseだったとか、クライアントのライセンスが無いとかじゃないよね?


546:NAME IS NULL
07/05/23 14:34:54
(Turbo Delphi に)同梱されているデータベース
InterBase 7.5.1 Developer Edition ― ユーザー数最大20 名、論理的なローカル接続数最大80まで



ローカルでしか使えないんじゃねえの?
所詮おまけソフトなんだし。

547:NAME IS NULL
07/05/23 22:41:19
InterBase 2007 Developer Editionでも使ってみたら?


548:NAME IS NULL
07/05/24 20:09:00
何このアホな展開

549:NAME IS NULL
07/05/29 10:46:08
1.5系で、ある程度のトランザクション数(かなり大きな数だったと思うけど)に達すると
データベースが壊れるみたいなことをどこかで見た記憶があるんだけど、詳しく
解説してあるところ知りませんか?

550:NAME IS NULL
07/05/29 16:36:23
トランザクション数というより、ポスグレとかと一緒で、トランザクションIDの枯渇のことでわ?

551:NAME IS NULL
07/05/29 20:23:48
それって割と特別な状況なんでしょうか。
トランザクション作るたびにID更新されたりしたら、
いつかは壊れるときが来ると思うんですが。

552:NAME IS NULL
07/05/29 22:21:03
>>551
一度バックアップ&リストアするとリセットされる。

うちの場合は盆と正月にメンテで必ずリストアし直すんだけど
トランザクションID的にはそんなことしなくても全然余裕。

枯渇する環境はかなり特殊かと。

553:NAME IS NULL
07/05/29 22:29:49
>>551
たしかIntegerの最大値だから21億くらいで枯渇。
普通のクラサバシステムなら十分な期間運用できると思うよ。


554:NAME IS NULL
07/05/30 10:34:01
へ~、そうなんだ。と思い試してみた。
>gstat -H mydb.fdb
で表示される、Next transactionが次回トランザクションIDなんだよね?
isqlの中だとshow databaseでも同じ値が確認できるな。

>gfix -sweep mydb.fdb
で強制スイープ掛けてもリセットされなかったが

>gbak -r backup.fbk mydb.fdb
では確かに低い値に戻った。

で、問題はコマンド投入タイミングの取得なんだが、トランザクションIDは
残念ながらシステムテーブルでは取得出来ないみたいだ。
プログラム的にはisc_database_info関数を使用する必要あり?


555:NAME IS NULL
07/05/30 11:09:54
えーっ、スイープで戻らないんですか?
確かある回数のトランザクションに達すると自動スイープがあったと
思ったけど、それでリセットされるかと期待したんですけど…。
なんかMLでは1.5.4でも直ってないという情報もあった記憶が。

556:NAME IS NULL
07/05/30 12:52:50
コネクションがあってトランザクションが進行中でも
スイープしたりバックアップが取れたりするのがFB&IB
の特徴だから途中でIDが変わってしまってはマズイというのは理解できる。
何しろ戦場でも使える管理不要DBが売りだからな。

値が循環してくれてれば良かったのだが。21億前のトランザクションが残っているとも思えないし。
でも超人気サイトのバックエンドDBでも無い限りまずはそうそうあり得ないか。
そういう所ではORACLEだろうし。

557:NAME IS NULL
07/05/30 18:36:54
21臆を越えたあたりでメッセージを表示するようにしておけばいいのさ
そしたらgbak

558:NAME IS NULL
07/05/30 19:46:10
まぁトランザクション回数に制限があるから不安はあるね。
バックアップリストアしないとリセットできないから
24時間常時アクセスのシステムでは使わない方が無難。

559:NAME IS NULL
07/05/30 19:59:32
やっぱり年次や月次の定型処理でやっててもよさそうな。

560:NAME IS NULL
07/05/30 21:53:24
夜とかシステムを止められる時間があるならやった方が良いよね。
でもスクリプトやプログラムで自動化するのは少し怖いな…。


561:NAME IS NULL
07/05/31 09:54:54
>21臆を越えたあたりで

何の数?

562:NAME IS NULL
07/05/31 10:30:23
トランザクションの数

563:NAME IS NULL
07/05/31 10:45:16
>>1からとは言わないが、十数レスほどさかのぼって読んでみてはいかがかな。

564:NAME IS NULL
07/06/01 15:12:06
なんかFBもだんだん使いにくくなってる気がするのは俺だけかな。
2.0系からはIBOConsoleで接続するとなんか動作怪しいし(すぐ切れる)。
もうIBXは使えないのかな?gpreはDelphiじゃ使えたもんじゃないし、
困ったのう。

565:NAME IS NULL
07/06/01 15:57:05
>もうIBXは使えないのかな?

動作はしてるお?
でもVi$ta64bitとか考えるとガクブル。

>gpreはDelphiじゃ使えたもんじゃないし、

これって何だっけ?

566:NAME IS NULL
07/06/01 21:20:08
埋め込みSQLをAPIコールに展開してくれるプリプロセッサじゃないか?
ORACLEのPRO*CやPRO*COBOLみたいな奴。

567:NAME IS NULL
07/06/02 00:41:22
>>564
SJIS0208で機種依存文字が使えないのが一番辛いな。
その問題が直るまでは1.5.4で様子見です。

IBOConsoleはいろいろと怪しい部分ある気がするよ。


568:NAME IS NULL
07/06/02 14:11:13
IBOConsoleってFB2.0に対応してるの?
されてないからFlameRobin日本語バージョン作ったんじゃない?

569:NAME IS NULL
07/06/04 22:30:47
>>568
されていないと思うよ。うちの環境でも問題起きるし。
FlameRobinに移行した方が安心だよ。

570:NAME IS NULL
07/06/05 00:10:33
IBExpertじゃダメなの?

571:NAME IS NULL
07/06/05 01:46:23
とうぜんOK>>IBExpert

572:NAME IS NULL
07/06/05 13:04:39
IBXに変わるDelphiのコンポーネントって何がいいのかな。
フリーで良いのないかな。


573:NAME IS NULL
07/06/05 16:01:44
>>527
これなんかどう?
FBLib Firebird Library
URLリンク(fblib.altervista.org)


574:NAME IS NULL
07/06/05 20:11:37
>>564
IBOConsoleはIBO(IBObjects)使ってるからIBXとは関係ないよ。
IBConsoleはIBX使ってるけれど。

>>572
後はフリーだとMDO(Mercury Database Objects)
URLリンク(sourceforge.net)
くらいかな?

575:NAME IS NULL
07/06/11 14:54:50
FirebirdでAccessのクロスクエリ的なSQLって発行できないですかね?
分析で使えると便利なんだけど検索しても出てこないし標準じゃ無いのかな・・・

576:NAME IS NULL
07/06/12 10:51:55
>>575
Accessでいうクロス集計クエリの構文(TRANSFORM...)はFirebirdにはないですね。


577:NAME IS NULL
07/06/12 11:35:07
>576
thx
自分で処理組むか・・・

578:NAME IS NULL
07/06/21 19:55:37
うpしてね

579:92
07/06/22 09:09:55
C#で良ければ・・・

580:NAME IS NULL
07/06/22 09:11:08
他スレの名前が残ってて鬱だ
○rz=3

581:NAME IS NULL
07/06/22 09:38:44
//CREATE TABLE NEW_TABLE1 (COL1 TIMESTAMP NOT NULL,COL2 SMALLINT NOT NULL,COL3 SMALLINT);
//ALTER TABLE NEW_TABLE1 ADD PRIMARY KEY (COL1,COL2);
private void button1_Click(object sender, EventArgs e)
{
  FbConnection con = null;
  try
  {
    //接続
    con = new FbConnection("server type=Default;initial catalog=c:\\test.fdb;data source=localhost;character set=SJIS_0208;user id=SYSDBA;password=masterkey");
    con.Open();
    
    //SQLの生成と発行
    FbCommand cmd = con.CreateCommand();
    cmd.CommandText = "select col1,col2,col3 from new_table1 order by col1,col2";
    FbDataReader dr = cmd.ExecuteReader();
    
    //格納先DataTableの生成
    DataSet dtSet = new DataSet("TEST");
    DataTable dtTable = dtSet.Tables.Add("TEST_TBL");
    DataRow dtRow = null;
    dtTable.Columns.Add("Date", Type.GetType("System.DateTime"));
    
    while(dr.Read())
    {
      //1行目はdtRowがないので生成する
      if(dtRow == null)
      {
        dtRow = dtTable.NewRow();
        dtRow[0] = dr[0];
      }
      
      //行のキー(1列目)が変わったら行を追加し、次行のキーを設定
      if (dtRow[0].ToString() != dr[0].ToString())
      {
        dtTable.Rows.Add(dtRow);
        dtRow = dtTable.NewRow();
        dtRow[0] = dr[0];
      }
    
      //対象の列(2列目の値が列名)が存在しない場合は列を追加
      string sColName = dr[1].ToString();
      if(!dtTable.Columns.Contains(sColName))
        dtTable.Columns.Add(sColName,Type.GetType("System.Double"));
      
      //値セット
      dtRow[sColName] = dr[2].ToString();
    }
    //最終行の書込み
    if(dtRow != null)
      dtTable.Rows.Add(dtRow);
    
    //グリッドに表示
    dataGridView1.DataSource = dtTable;
  }
  finally
  {
    if (con != null) con.Close();
  }
}


582:NAME IS NULL
07/06/22 18:51:38
firebirdで統計関数つかえるかもしれないudf
URLリンク(www.moriq.com)
家に帰ったらためしてみよ


583:NAME IS NULL
07/06/22 23:03:24
だめだうごかね

584:NAME IS NULL
07/06/25 14:39:30

「MySQL,PostgreSQLとFirebirdの性能をユーザー会メンバーが徹底比較,判明した"意外な結果”」---OSC2007.DBより
URLリンク(itpro.nikkeibp.co.jp)



585:NAME IS NULL
07/06/25 16:34:36
>>584
OS分からないし、ベンチ用DBのテーブル構成も分からないし、測定方法も分からないし
「シングルコネクションならFirebird」って結論書いてるけど、記事の中は負荷テストの
結果については何も書いてないし。

肝心な部分は何もかも分からない記事だなこれ。
どこかにちゃんとしたソースはないのか?

586:NAME IS NULL
07/06/26 15:09:07
Firebird is no1

587:NAME IS NULL
07/06/26 16:17:17
>>585
OSはDebianだったよ。そのうちに、OSC.DBのポータルに資料があがるって。


588:NAME IS NULL
07/06/30 06:39:00
すいません初心者質問させてください。

IBXでFirebirdって使えないんですか?


589:NAME IS NULL
07/06/30 10:27:01
使えますよ


590:588
07/06/30 15:55:47
FB2.0でも使えますか?

591:NAME IS NULL
07/06/30 17:43:46
>>590
使えますよ。


592:588
07/07/04 06:16:51
>>589,591
回答ありがとうございました。

上の書き込みをざっと読んで、IBXじゃなく他のFB用Delphiコンポを
使ってらっしゃる方が多そうだったので心配になってました。


593:NAME IS NULL
07/07/17 11:36:26 Jrlc20X+
postgresでText型で指定してあるカラムを主キーにしていたのですが、
FireBirdに移行する際にText型がないのでVARCHAR(255)で指定し、
主キーをそのカラムに設定し、データベースを作成しようとすると

key size too big for index カラム名
と怒られます。
どうもVARCHARのサイズが大きすぎるので試しにVARCHAR(100)にしてみたとろエラーは出なくなりました。

しかし、このカラムにはWindowsのファイルパスが入る為
、255文字までは念のため許容したいのですが何かいい方法はないでしょうか?

CreateDatabaseではオプション等の指定はなく
CREATE DATABASE 'LOCALHOST:DBファイルフルパス'
で作成しています。

ご存知の方はよろしくお願いします。


594:593
07/07/17 11:37:29 Jrlc20X+
修正

×key size too big for index カラム名
○key size too big for index 主キー名

595:NAME IS NULL
07/07/17 12:39:07
長いパス名がダメなら、短いパス名を使うとか
相対パスとか、フォルダと名前を分けるとかできそうなもんだが。
そもそもファイルは削除される可能性があるのにキーにする意味あるのか?

596:NAME IS NULL
07/07/17 13:01:01 Jrlc20X+
>>595
ファイル名とタグ情報で一意のキーにしているテーブルなんです。
ファイルのタグ情報管理用のテーブルなんです

本来は
KeyNo(Int) とファイル名
KeyNo(Int) とタグ名
で分けるべきだったんでしょうが複数テーブルへの書き込みやJoinが発生することを嫌ってこうしてしまっていたんです。

ショートファイル名がVistaとかでどう解釈されるかなどを調べるのも微妙なので
テーブル構造を見直す方向でやってみようかなと・・・・



597:NAME IS NULL
07/07/17 16:26:45
>書き込みやJoinが発生することを嫌ってこうしてしまっていたんです

・・・・

598:NAME IS NULL
07/07/17 19:56:22
設計ミスが明らか

599:NAME IS NULL
07/07/17 21:07:57
こんな有用なページみっけ!

IBConsoleについての考察
URLリンク(homepage1.nifty.com)


600:NAME IS NULL
07/07/18 00:27:48
>>593
Firebird2以降でできないっけ?
大きいページサイズを指定して。

601:NAME IS NULL
07/07/18 00:34:51
URLリンク(www.ospn.jp)

Firebird 2.0
>252バイトのインデックス制限の撤廃。インデックスサイズはページサイズまで拡大可能


602:NAME IS NULL
07/07/18 10:36:32
>>593
VARCHAR(250)
でうまくいかないのでしょうか?

うろ覚えですが、255文字になるとblob扱いになるとかなんとか・・・

603:593
07/07/18 20:50:34 VQDiTlZO
レスしてくださった方々ありがとうございます
基本的にネット環境がないので遅いレスですが失礼します

環境が2.0にできるのであれば問題がなさそうな感じですが安定板とか言って1.5系の最終1.53(?)
を使用することになっています。

もともとの設計がおかしいことはわかっていたのですが手間とか考えるのと焦っていたので糞設計してしまっていました
VARCHARのサイズ調整とページファイル調整でどうにかなるかもしれなさそうなので
設計修正は後回しにして少し試してみたいと思います

もし200程度で行けるのであれば、ファイルパスを格納するので問題がなさそうです。
(これなら 確かWindowsが150文字くらいからパス長すぎのエラーが出る場合もあるようですし
PG側から深い階層にしないように警告する方向でいけるんじゃないかと)

604:NAME IS NULL
07/07/26 10:07:48
.netとかからFirebirdのユーザ追加したりパスワード変更したりする方法とかってあるますか?

605:NAME IS NULL
07/07/26 11:01:38
C#とかなら、プログラム内からコマンドライン用のプログラムを起動すればいいんじゃないの?

606:NAME IS NULL
07/07/26 12:08:17 udSwBcUt
.net用のデータプロバイダの中のServerとかあたりの名前空間の中の機能じゃできないんだろうか

607:NAME IS NULL
07/07/26 15:04:06
>605,606
探してみたらなんとかできました。
ありが㌧

private void button1_Click(object sender, EventArgs e)
{
  FirebirdSql.Data.Services.FbUserData hoge = new FirebirdSql.Data.Services.FbUserData();
  hoge.UserName = "hogeuser";
  hoge.UserPassword = "hogepassword";

  StringBuilder sb = new StringBuilder();
  sb.Append("server type=Default;initial catalog=c:\\hoge.fdb;datasource=localhost;");
  sb.Append("character set=SJIS_0208;user id=SYSDBA;password=masterkey");
  FirebirdSql.Data.Services.FbSecurity hage = new FirebirdSql.Data.Services.FbSecurity();
  hage.ConnectionString = sb.ToString();
  hage.AddUser(hoge);
}

なんかバックアップとかいろいろ出来そうなのでもう少し調べて見よう・・・。


608:NAME IS NULL
07/07/26 15:35:45 udSwBcUt
>>607
お、いけるんだなw
ちょっとやってみて調べたら情報うpしてくれww


609:NAME IS NULL
07/07/31 14:49:59 9ImXiTwS
Windows版で、FB2.0サーバーと、クライアントのDLLにFB1.5、DBファイルは1.5や2.0とバージョン混在させても動作しますか?

610:NAME IS NULL
07/07/31 17:05:57 NYEBxcjn
firebird1.53でVB.NET2005から firebird用の.net dataproviderを使用して接続しようとしています。

あるパスにあるFDBファイルのTESTというDBを見に行きたいので
FirebirdSql.Data.FirebirdClient.FbConnection を使用して接続を試みました。(以下はConnectinString)
data source=TEST;initial catalog=c:\TEST.FDB;user id=sysdba;password=masterkey;dialect=3;character set=SJIS_0208

コネクションをオープンしようとしたところ以下のエラーが発生したのですが何が間違っているのかわかりません。
Unable to complete network request to host "TEST"

試しにODBCで
DataSourceName=test
Driver=IscDbc
DataBase=C:\TEST.FDB
DataBaseAccount=SYSDBA
PASSWORD=MASTERKEY
CharSET=SJIS_0208 を選択
Dialect=3 にチェック
で接続したところ成功し、CSEでODBC経由で閲覧しても正常に見れました。

なにかConnectionStringが間違っているんでしょうか?

611:NAME IS NULL
07/07/31 18:02:02
でーたそーすを「localhost」に

612:NAME IS NULL
07/07/31 20:49:21 NYEBxcjn
>>611
レスありがとうございます!!
接続ができました!!!



613:611
07/07/31 20:57:04 NYEBxcjn
あつかましついでに質問なのですが テーブル作成するときにデフォルト値を設定するときDEFAULT が使えないような気がするのですが・・・
何か他のキーワードなのでしょうか?

614:NAME IS NULL
07/08/01 02:45:00
>>613
使える。
ただしNOT NULLじゃないと自動的には入らない。・・・ってことでは?

615:NAME IS NULL
07/08/01 09:13:39
NOT NULLじゃなくても使えるぽ

SQL> CREATE TABLE HOGE_TABLE (HOGE1 SMALLINT NOT NULL,HOGE2 SMALLINT DEFAULT 100);
SQL> select * from hoge_table;
SQL> insert into hoge_table (hoge1) values(1);
SQL> select * from hoge_table;

HOGE1 HOGE2
======= =======
1 100

SQL>

あとTESTというエイリアスにアクセスするときは「c:\TEST.FDB」をTESTに置き換えるヨロシ


616:NAME IS NULL
07/08/01 10:25:36
609もヨロ!

617:NAME IS NULL
07/08/02 12:20:29
>616
自分のマシンで試して見たほうが早いと思う

618:609
07/08/02 15:00:23
何度か行って、何かフリーズしたことが2、3回あったような。
でも、インスコしなおしたらすぐ直ったり、確実に発生しないし発生したような気がするし、苦手な状況です。

619:NAME IS NULL
07/08/02 17:33:04
両Verの鯖を同時に上げなければ大丈夫だったりする?
何かOSのリソースか何かをつかんでてfirebird.confか何かをいじる必要があった希ガス

620:NAME IS NULL
07/08/02 23:08:19
クライアントDLLは別に問題ないと思うけど、
2.0サーバで1.5のDBファイルは使えないよ。(ODSバージョンが違うから)

一旦1.5サーバでバックアップとって、2.0サーバでリストアすればOKだけど、
リストアでエラーになる場合もあるから注意。

621:NAME IS NULL
07/08/03 09:34:39
>2.0サーバで1.5のDBファイルは使えないよ。(ODSバージョンが違うから)

ちょ、マジですか?
動作しているように見えるのは気のせい?

622:609
07/08/03 09:37:56 tbJGoSpZ
> 2.0サーバで1.5のDBファイルは使えないよ。(ODSバージョンが違うから)

この内容ショッキングなんですが、間違って使用するとどうなりますか?
もしDBが壊れるのであれば、アプリからDBファイルのODSバージョンを確認したりできますか?

623:620
07/08/03 11:27:17
>>621-622
ごめん、今確認したら2.0でも使えるみたいだね。(オレの記憶違いでした。)
ODSバージョンは gstat というコマンドラインユーティリティ使えば確認できるよ。
例)gstat db1.fdb

詳しくはwikiで
URLリンク(firebird.skr.jp)


624:609
07/08/03 11:37:03
レスサンクス>>623

朝から涙目でググってました。
ググっても日本ユーザー会と掲示板とFB Wikiくらいしか見つかりませんでしたが。

ちょうど自分もgstatコマンド打ってたとこでした。(で、パスが通ってなくて、コマンドエラーorz)
自分が使うんじゃなくて営業マンとかが使う事になるのでGUIじゃないとキビシー。
ツール作るかなぁ。

FB1.5ファイルからFB2.0ファイルにコンバートするGUIツールがあれば完璧なんですが。。。

625:609
07/08/03 11:40:02
security.fdbは互換無いって情報はありましたね。

ユーザー情報の変更はプログラムで行ってますが、
でも、security.fdbのファイル自体はFBインストーラーに任せてるから今のところ無問題。

URLリンク(koji27.cocolog-nifty.com)

626:614
07/08/03 11:42:01
>>615
いや、それは知ってるんだが、>>613が「DEFAULTが使えない」って
言ってるってことは、「NULLが入」るって意味だと理解したんだ。で、

insert into hoge_table (hoge1,hoge2) values(1,NULL);

を暗黙で実行するようなGUIツールか何かを使っているのでは?
と思ったんだ。ならばNOT NULLをつければ解決だろうと。

627:609
07/08/03 11:58:47
連続投稿ですみません(気が動転してます)

以下のように自分は理解しました。(問題ありそうなところや関連情報がありましたらレス下さいm(__)m)

URLリンク(firebird.skr.jp)
>データベースへの接続時には次のことが行われます。
>1. ヘッダページ部分のベリファイ
>2. 既存データベースの存在チェック
>3. バージョンチェック。オンディスクストラクチャ(ODS)には
> データベースのバージョン番号があるので、
> データベースエンジンが扱えるバージョンであるかチェックします
> 異常があった場合、データベースエンジンはエラーを返します。

ということで、旧DBファイルでも接続できた時点で一応は使えてDB破壊は無いのでは、と思いました。

CONNECTですが、自分の場合は、BCB6-IBX-FB、という接続にしています。


628:NAME IS NULL
07/08/03 12:34:46
>626
>暗黙で実行するようなGUIツールか何かを使っているのでは?
どのツールを想定したんだ?
ちなみにその場合でもnot nullは使えないと思うが・・・

SQL> CREATE TABLE HOGE_TABLE (HOGE1 SMALLINT NOT NULL,HOGE2 SMALLINT DEFAULT 100 NOT NULL);
SQL> select * from hoge_table;
SQL> insert into hoge_table (hoge1,hoge2) values(1,null);
Statement failed, SQLCODE = -625
validation error for column HOGE2, value "*** null ***"
SQL> insert into hoge_table (hoge1) values(1);
SQL> select * from hoge_table;

 HOGE1  HOGE2
======= =======
   1   100

SQL>

629:NAME IS NULL
07/08/03 13:35:38
PHP5からfirebird使うにあたって、ネイティブ以外で一番適したライブラリって
何でしょうか?
全体的にはMDB2とかPDOあたりが主流みたいですが、firebirdでも問題なく
使えるでしょうか?

630:NAME IS NULL
07/08/03 17:09:07 tbJGoSpZ
FB1.5サーバーにFB2.0のクライアント(fbclient.dll)を組み合わせても動作しますか?

631:NAME IS NULL
07/08/04 15:23:41
>>630
クライアントは基本的に後方互換ありだから
「サーバのバージョン < クライアントのバージョン」
は問題ないよ

632:630
07/08/06 09:20:19
サンクス>>631

みんな互換性詳しいですね。

自分もFBのppt文書とかPDF読んでるけど、そこまで見つけれないお。

633:NAME IS NULL
07/08/14 13:40:31 wKocF6BY
>>629

なぜ「ネイティブ以外」?

634:NAME IS NULL
07/08/14 14:53:03
>>629
多分将来的に他のRDBMSに乗せ換え利くようにだろうけど。
PDOは最初にフェッチしたレコードの全てのフィールドにNullが入っているバグが放置されているな。
dsnの接続文字列も説明と違って難儀した。誰も使ってないんじゃないか?って思う。

FB関数の方が枯れてて無難のように思える。
ラッパークラス作っていつでも差し替え出来るようにしとけばいいかもね。

635:NAME IS NULL
07/08/14 18:47:41
Firebird 2.0ってフィールド名とかに日本語は使用できないんでしょうか?

636:NAME IS NULL
07/08/15 03:51:20 +G474/JV
>>635
ダブルクォートで囲むとできると思う。
できるのは確認したけで本番で使ったことないから、どっかで行き詰まるかも

637:NAME IS NULL
07/08/15 07:51:25
UTF8ならまず大丈夫だとは思う

638:NAME IS NULL
07/08/15 12:00:59
OracleやSQL Serverでも日本語オブジェクト名使えても英数字しか使わない人いるからなあ。
使わなければそれに越した事は無いんだが。

639:NAME IS NULL
07/08/15 12:39:08
DBってアプリの中の人なんだから日本語である必要は無い。

640:NAME IS NULL
07/08/16 14:59:59
テーブルを英数で定義して、列を日本語化したビューを作るのが良いかも

641:NAME IS NULL
07/08/16 18:21:18
下手に日本語使えたりすると変な文字使ってくれる人いるからなあ。
機種依存文字の○数字(1)とか。

英数字名で作っても某系ツールはデータディクショナリで翻訳してくれるから便利。

642:635
07/08/17 02:49:33
ありがとうございます、無事実行できました。

643:629
07/08/17 15:22:09
>>633 >>634
フレームワークやPEARを使おうとすると、ネイティブではダメなんですよね。
PDOもバグバグみたいですね。なんだかなあ…。

PHPのDB接続ライブラリ界隈も、いつぞやのMicrosoftのDB操作コンポの様で
どこへ行こうとして、何を標準に持ってくるつもりなのか、さっぱり分かりません。

644:NAME IS NULL
07/08/18 10:38:53
フィールド名に日本語を使うと、プログラム書くとき非常に面倒くさいと感じるのは俺だけ?

645:NAME IS NULL
07/08/19 01:28:09
>>644
あるなあ。
ただ英数字ローマ字で変な略称された時も困る。
プロジェクト内命名規則辞書などがまとめられていればいいのだが。
世の中に気の利くPMは少ない。


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch