落ちてたから立てた、適当にテンプレよろしく
乙。でも、とりあえず wiki の案内 さえあれば十分だよね?
DelWikiのように突然消えても大丈夫なようにローカルにバックアップを取りたいのだが、 簡単にできないかな?
パスワードをデータベースファイル自体にかけることは無理? 1ファイルでポータビリティは良さそうだけど、他のマシンに持っていったら あっさり見れちゃうんですよね。
7 :
NAME IS NULL :2006/01/06(金) 18:22:32 ID:MvqnOdd5
現在 FIRST_NAME VARCHAR(32) LAST_NAME VARCHAR(32) と言う二つのフィールドから、Computedフィールド NAME VARCHAR(64) を作りたくて COMPUTED BY ((CUST_ADDRESS1 || CUST_ADDRESS2)) と定義しましたが、この場合どちらか一方でもNULLの場合にNAMEにもNULL が入ってしまいます。 if関数のようなもので、NULL時には結合しないなどの方法はないのでしょうか?
計算型を使わないで、SELECTでCASEを使えばいいんじゃないの? もしくはストアドを使うことにするとか、独自のUDFを作るとか
9 :
7 :2006/01/07(土) 09:16:24 ID:???
>>8 ありがとうございます
case
when FIRST_NAME is not null and LAST_NAME is null then FIRST_NAME
when FIRST_NAME is null and LAST_NAME is not null then LAST_NAME
else FIRST_NAME || LAST_NAME end AS NAME
でいけました。
Computedフィールドで同じように定義しても同様の成果が得られたんですが、それでもんだいないですかね?
計算型でも CASE 使えるんだ 確かに、使えても不思議ではないね
>>9 COALESCE(FIRST_NAME || LAST_NAME, FIRST_NAME, LAST_NAME)
これでもええよ
12 :
7 :2006/01/08(日) 14:14:44 ID:???
そのものズバリの関数があったんですね… しかも標準SQL準拠で ありがとうございます。
13 :
NAME IS NULL :2006/01/09(月) 05:55:35 ID:OWb6eHvC
いや、おもいっきり関数なんですけど
15 :
NAME IS NULL :2006/01/29(日) 21:26:04 ID:HScJbOKN
とりあえず50から落ちたから上げとく
1.5.3の正式版、先週に出てたんだ
別に今のバージョンで困らない...
困ったときにはもう遅い。
Delphiから火鳥を使いたいんだけど、FIBPlusとIBObjectとどっちがおすすめでつか?
IBOしか使ったこと無いけど、おすすめ。
dbExpressしか使ったことないや
自分はIBXしか使ったことないや
IBXはFB1.5以降をサポートしてないんじゃない?
>>24 そのサイトから得られるものは何もないぞ。完全に有名無実化してる。
うん。wikiの方が役に立つ。 コミュニティを活性化させる前に組織化しちゃったら失敗するよ、というよい例。 潜在的なユーザは結構いるがユーザ会をスルーしてるのが実情。残念ながらあれ じゃ誰もついてこない。 そもそも、目指す方向性がボーランドとどう違うのかサッパリわからない。 オプソはまず楽しくワイワイやるべき。その中でユーザが増え実用性が評価されて そこで初めてエンタープライズ指向のビジネスを展開できるようになる。
>>19 その二つならどっちでも良いんじゃない?
>>26 リファレンスなんかはwikiに任せるとして
海外の動向とかバグリストとか載せて欲しいよな・・。
英語苦手っす。
>>23 1.5系をサーバーにしてIBXでクライアント作ってるよ。
基本的な機能しか使わないなら大丈夫じゃないの?
つぶしの利く設計にしようと思ったら、FB特有の機能には興味出ないんだよね。
>>28 自分もそうしてる。
心配なのは、やっぱFB-64bitになると、IBXお別れかなぁ。
その前にBDS64bitが出るのか、IBX 64bitが出るのか(IBがあるから大丈夫なはず?)、も心配しないと。
>>29 64Bit版FB+IBXいけるよ。もちろんIBX側は32Bitで。
31 :
NAME IS NULL :2006/02/08(水) 08:44:07 ID:NMsGa8Yd
thx!
>>30 その場合、Win64環境で、FB64とアプリ32を動かすという事?
Win64環境を出来るだけ詳しく知りたいでつ。
テストさえちゃんとしとけば、アプリは32bitでも「Win64対応しました」と逝っても良い?
Interbase売却だそうで。Firebirdにしといて良かった。
72 :デフォルトの名無しさん :2006/02/09(木) 15:45:18
Interbaseはどうなるってどこにも書いてないね
73 名前: デフォルトの名無しさん [sage] 投稿日: 2006/02/09(木) 15:55:39
>72
売却だよん。
> include Delphi, C++Builder, C#Builder, JBuilder (and Peloton),
>InterBase, JDataStore, nDataStore, Kylix,
~~~~~~~~~~~
>and our older Borland and Turbo language products and tools.
http://bdn.borland.com/article/0,1410,33439,00.html InterBaseが終わってしまった訳だが……。
こうなるとIBOの存続も危ういな・・・。
IBとFBがもう一回統合しれくれないかな。 IBXの延命希望。
Delphiが終わるのにIBXが続く必要性って何?
まー買い手が見つかるか、先を見ないとわからんべ 売れなければ値段はどんどん下がって下ろうから、どこかは買うと思うけどね
Delphi消えるとただでさえ少ないFirebirdユーザーが更に減る
39 :
NAME IS NULL :2006/02/21(火) 21:25:38 ID:lQzkBkNz
下がりすぎたんで上げ
40 :
NAME IS NULL :2006/02/22(水) 09:46:15 ID:oA4SF57g
IBどうなるんだっけ? FBとIBともう一度マージして欲しい。
IBはDelphiやなんかと一緒に抱き合わせで売却予定。買い手はまだ見つからないらしいけど。 でもそんなに変わったの? IB6→IB7.xで。
格納されるデータフォーマット(ODS)は変わってるよね
インターフェースであるIBXは変わってないけど、 IBの中の人のODSは変わったで、FA?
44 :
NAME IS NULL :2006/02/25(土) 08:39:29 ID:4TwuYDQa
なんか、海外は IB 売却の話よりも MySQL 関係との絡みでちょっとだけど騒いでるね
MySQLがInterbaseの元アーキテクトを雇い入れたんだっけか?
そうみたいだね。 一時期は統合か?とも騒がれたけど、そういうことはないとしてコンセンサスは 取られたみたいだけど。
47 :
NAME IS NULL :2006/02/28(火) 10:09:40 ID:VIRUvOC3
FBとMySQLとどっちが良い?
またそういう、具体的な想定も出さずに、意味のない質問を...
49 :
NAME IS NULL :2006/02/28(火) 14:44:32 ID:XaQcmKMA
IB/FB系のいいところって、ぶっちゃけデータベース用ファイルが 簡単にコピーできたりするところかしらねえ。 もちろん、ちゃんとサーバプロセスをとめてからの話だと思うが。 止めなくても、ある程度はコピーしても問題ない? そゆったFBのデータベース管理なんて.mdbしか知らない人が いて平気でコピーしてバックアップとっているから驚いた。
普通にオンラインバックアップでいいとおもうけど
51 :
NAME IS NULL :2006/03/10(金) 01:26:23 ID:rJIaLTLx
Firebirdを使って業務アプリを組むことになりました。 Firebirdでおすすめの管理ツールを教えてください。 Windowsで使います。 よろしくお願いします。
いきなりFirebirdで開発 InterBaseでしたほうがいいかも トラブッタ時のこと考えると安く済みそう!
今更某なんて信用できるかよ
gfixでシャットダウンしたのだけれど、起動するにはどうすれば?
普通に再起動すればいいんじゃないの? 方法は動作環境によるけど
>>56 たぶんこんな感じ
(シャットダウン)
gfix -user "username" -password "password" -sh -force 0 "C:\DB.FDB"
(シャットダウンからの復帰)
gfix -user "username" -password "password" -online "C:\DB.FDB"
(シャットダウン状態の確認)
gstat -user "username" -password "password" -h "C:\DB.FDB"
>>Attributes force write, database shutdown(シャットダウン中)
>>Attributes force write(通常時)
>>58 サンクス!
gfixでのシャットダウンというのは
Firebird Guardianが指定したFDBファイルに情報をフラッシュし、
干渉しなくなるってことですか?
それとも新規接続、新規トランザクションを弾くだけ?
>>Attributes force write, database shutdown(シャットダウン中)
の状態でも既存接続のselect文でデータ読めるようなので
シャットダウンの効果とか知りたいです。
60 :
58 :2006/03/15(水) 21:23:40 ID:???
>>59 シャットダウンはデータベースファイルのオーナーかSYSDBA以外は
接続禁止にする排他機能の事。
オーナーやSYSDBAは普通に使える。
データベースの検査とか二次ファイルの追加とかする時はシャットダウンした方がいいみたい。
> それとも新規接続、新規トランザクションを弾くだけ?
シャットダウンしようと試みる時の動作はオプションによって違うかな
オプションについてはWikiのgfixのトコみてみて
英語だけど
http://www.ibphoenix.com/downloads/60OpGuide.zip の135ページのあたりにも書いてあるから読んでみるといいよ
>>60 なるほど、タスクトレイ→右クリ→Shutdownとは別物なのね。
<(_ _)>
ヨ
>>63 どうでしたか?
ところで
>>日本でオープンソースDBといえばMySQLとPostgreSQLですが、海外ではMySQLとFirebirdがあげられます。
これ本当なんだろうか。
>>64 まぁーまぁーでしたー。
>>海外では〜
それすらも微妙ですね
66 :
NAME IS NULL :2006/03/19(日) 20:17:22 ID:XdLgWdOb
Firebirdの日本語マニュアルってありますか? (WWWで探しましたが見当たりませんでした) せめてSQLのリファレンスだけでも欲しいのですが・・・
68 :
NAME IS NULL :2006/03/20(月) 06:00:52 ID:nI+nmGdY
>67 ありがとう。 紹介していただいたサイトをサイト見て勉強します。
Wiki、Googleだと全然ヒットしないよね Yahoo!サーチならヒットするんだけど
70 :
NAME IS NULL :2006/03/21(火) 12:23:54 ID:MFoi5h55
標準UDFのRANDを使うと乱数が取れるのですが SELECT *, RAND 〜 の様に使うとすべての行に同じ値が入ってしまいます。 行ごとに乱数を発生させるにはどうしたらよいのでしょうか?
71 :
NAME IS NULL :2006/03/22(水) 06:11:23 ID:I3MWPZ4k
目的がわかんないからなぁ 見るだけならストアドを使うとか、行の更新や追加ならトリガ内で使うとかすれば問題なさそうな気がするけど
>>71 ソート列として使用し、SQLが実行されるたびに並び順をランダムにしたいのですが…。
73 :
NAME IS NULL :2006/03/22(水) 12:05:47 ID:5Wmy7fHF
二つのTIMESTAMP型の差を分として取り出したいのですがどのようにしたらよいのでしょうか? CAST(CAST(ENDTIME AS TIME) - CAST(STARTTIME AS TIME) AS INTEGER)/60 これで一見うまくいくように思えたのですが、日をまたぐと正しい値を返してくれませんでした。
74 :
NAME IS NULL :2006/03/23(木) 12:31:40 ID:Kdxn47S9
>>72 トリガ+UPDATE等で、必要なときにその行なり全行なりを更新すれば
いいのではないかと。
>>73 CASEで、普通のプログラミング言語での要領で条件判定を書き連ねて
いけば出来るのではないかな?
昔、教えて goo で年齢算出のはあったよ。
firebird 年齢 で教えて!で検索すれば出るけど。
よく使うなら、いっそのこと、UDFを作ってしまうのでもいいだろうし。
75 :
73 :2006/03/23(木) 12:41:31 ID:???
Visual Studio 2005とFirebird .NET Provider2.0を使ったサンプルとか何処かにありませんか? 言語はVBでもC#でも良いんだけど。 VS2003+.NET1.1と使い方が変わったみたいで上手くいかないorz
ツールボックスにFB・・・のコントロールを追加しようと 「アイテムの選択」で追加しても有効にならない。 つまり、「一覧の表示」では上記コントロールは表示されず、 「すべて表示」にするとグレーで表示されてD&Dできない。 VS2003+FireBird .NET Provider 1.Xのときは上記操作でOKだったんですが。
上のRC1試してみました。 Windows FormのときはOKでしたが、Web Formのときはやはりグレー表示になってD&Dできません。 2005あるいは。NET2.0で方法が変わったのでしょうか。もう少し調べてみます。
81 :
NAME IS NULL :2006/04/02(日) 04:57:05 ID:8UWP//zo
>>81 PostgreSQLにはパッチであるっぽいね。よく知らないんだけど、GentooではUSEフラグで指定できるから。
Firebirdで作ってる人どこかにいないか、探してみては。
83 :
NAME IS NULL :2006/04/09(日) 15:40:12 ID:r9MSbM9w
ねーねー、Firebirdと、postgresqlを同時に動かす方法ってないん? どちらかがIPCの取り合い合戦で死ぬ。
FBはプロセス間通信リソースに関しては構成ファイルで設定できるはずだが
85 :
NAME IS NULL :2006/04/10(月) 02:44:25 ID:+ea1qyJm
>>84 そうなんですか。早速試してみます。ありがとうございます。
IBOってDelphi ProfessionalでもOK? Enterprise必要?
サンクス
最近統計資料をいろいろ作ってるんだけど、クロス集計的な事をやろうとすると FROM句のサブクエリー使えないのが不便で仕方ないね。 2.0のリリースっていつぐらいの予定なんだろう?
sourceforgeで1.5のタイムスタンプみたら βから正式リリースまで1年くらいかかってるね 今年中には・・・無理かなぁ・・? Firebird-1.5.0.2211_beta_2_win32.zip 2801 kb Feb 10, 2003 06:50 Firebird-1.5.0.4290-Win32.exe 3858 kb Feb 20, 2004 04:53
Win64bit版使ってる人はどうでつか?
DELPHI7+FB1.5でIBXかdbxで接続する場合、クライアントアプリインストール時にサーバーとdbファイルを指定する方法はどうすればよいでしょうか。 BDEだとBDEAdminで指定してますが、ibx等での方法がわかりません。
うちのはヘルプが壊れてたけど何とかたどり着けた d7ibx.hlpのDatabaseName プロパティ(TIBDatabase)に書いてある
>>94 すみません。質問の書き方が悪かったようです。
実行時に動的にDBを指定するためにBDEAdminのようなツールでDBの位置をどこかで指定してやりたいのです。
あるいはクライアントアプリ起動時にDBの位置を検索して開くでもいいです。
コンパイル時にDBファイルの位置を埋め込まずに後から指定してやりたいってことです。
96 :
NAME IS NULL :2006/04/24(月) 17:51:01 ID:JR/RN+jH
プログラム自身で、環境だかファイルだかを読んでプロパティに設定する という方法じゃ駄目なの?
>>96 その環境かファイルへDBの位置をGUIで設定したいということです。
知識のない人でも簡単にインストールできるようにしたいのです。
>>97 そのアプリ専用のものでよければ自分で作っちゃえば?
1時間もあれば出来るでしょ。
Javaで import org.firebirdsql.jdbc.*; と呼んどいて、コンパイルすると 「パッケージ org.firebirdsql.jdbcは存在しません」 というエラーが出ます。 原因わかりますか?教えてください。
>>98 やっぱりそれしかないですか。
その手のコンポが有ればと思ったのですが残念です。
いや、IBXならODBCみたく登録不要で、実行時にファイルパス渡せるお。
TIBDatabase *Database; //←これはアプリの最初から最後まで使うからローカル変数じゃダメお。 ●接続 Database->DatabaseName = "c:/test.FDB"; Database->Params->Values["user_name"] = "SYSDBA"; Database->Params->Values["password"] = "masterkey"; Database->Open(); な感じかなぁ。
その指定先をGUIでやりたいって話だと思うが
ダイアログ作るなりして指定させればよいかと user/pass固定ならopendialogだけで済むし
>"c:/test.FDB" この部分をエディットにするだけじゃん。
107 :
93 :2006/04/28(金) 14:02:12 ID:???
色々ご意見有難う胃ございました。 結局設定画面を自作することにしました。 そこで、サーバーのファイルの位置を指定してやるのはパスを手入力するしかないのでしょうか。 サーバーにファイル名で問い合わせたらパスを返してくるようなAPIは無いですか?
>>107 もうちょっとレス読むなり、自分で考えようぜ
>>109 ありがとうございます。
これでクライアント側でサーバー名だけ設定すれば接続できるようになりました。
FB1.5で CHARACTER SET を SJIS_0208 にしてデータベースを作成し テーブルにCHAR(10)でフィールドを作ると実際には長さ20バイトのフィールドが 出来るんですが、こうゆうものなのでしょうか。
>>111 CHAR(10)→10文字だから、そのcharsetなら概念としては正しいのかも。
そんなことせずバイト指定になっちゃうソフトも多い気はするけど。
113 :
NAME IS NULL :2006/05/03(水) 05:39:45 ID:fGACXYGv
SQL92の規格でも、CHARACTER 指定は文字数指定だしね
何か珍しい話は無いのでしょうか? 運用上のトラブルでも何でも。
トラブルっていうか、つまずいたところをメモっておく。 OOoBaseからJDBC経由でFirebirdを使う場合、Jaybirdのバージョンが2.0.1だと いろんなエラーが出てハマる。1.5.6だと問題なし。つまりJRE1.5は使えないってことだ。
Jaybird は2.1.0のベータが出てるがどうだろ?
117 :
NAME IS NULL :2006/05/19(金) 06:09:15 ID:DvcQUEDG
Firebird 2.0 RC2 が出たんだな 夏には正式版リリースかな?
機能に不満が無い人は、1.5と2.0とどっちを使うべき? パフォーマンスや容量が劇的にうpするとかある?
まだ試してないからなんともいえないが、現状で問題ないなら正式リリースが 出てから様子見で良いのでは? 1.5は十分安定してると思うし。
120 :
NAME IS NULL :2006/06/06(火) 05:51:37 ID:J/bbP40K
121 :
NAME IS NULL :2006/06/06(火) 20:13:29 ID:HKE8x+IP
自動スイープ設定というのはどこでするんですか?
122 :
NAME IS NULL :2006/06/06(火) 20:26:15 ID:8pXIE1kI
124 :
NAME IS NULL :2006/06/07(水) 14:32:09 ID:ox6RzjNg
スイープってどういう機能ですか? 削除されたレコードエリアの再利用だったら、 FBだと勝手に行われるんじゃなかったでしたっけ?
125 :
NAME IS NULL :2006/06/07(水) 16:45:37 ID:64er9V8/
>>125 FirebirdやInterBaseで言うスイープはメモリ解放とは違うと思うよ。
トランザクションにてテーブルの行を更新すると、その行のコピーが作られるみたいで、
ロールバックした場合は、その行のコピーが履歴として残るため、
そういうことが多くなるとデータベースのサイズが大きくなるんで、
それを抑えるために、スイープを行って履歴を破棄するってことだと思うけど違うかな?
127 :
NAME IS NULL :2006/06/07(水) 19:31:29 ID:64er9V8/
128 :
NAME IS NULL :2006/06/08(木) 13:46:06 ID:y3c045F2
実行時エラー以外はロールバックしないようにアプリを作るのも一つの手?
質問です PostgreSQLやMySQLにあるexplain命令はFirebirdには存在しますか? 自分の作ったindexがうまく機能していないみたい(全検索状態になっているみたい) なのですが、どう調べたらいいのかわかりません Wikiなどを確認したところ、gstatが一番近いかと思ったのですが、自分が欲しい情報とは ちょっと(だいぶ?)違う気がしています。ちなみに今使っているバージョンは1.5.3です
130 :
NAME IS NULL :2006/06/11(日) 04:06:39 ID:nUNwvdYz
131 :
129 :2006/06/11(日) 09:30:11 ID:???
>>130 ありがとうございます
まだ寝起きでコマンドの動作確認もしていませんが、これからいろいろ調べてみようと思います
132 :
NAME IS NULL :2006/06/12(月) 14:35:00 ID:hn08hSY6
BDE経由でFireBird(1.5)に接続しようとしたところ、項目(フィールド)型が無効ですが出てしまいます(日付型の問題みたいです)。 ドライバはINTERBASEを使っているのですが、BDEで接続する場合本来どのドライバを使うものなのでしょうか?
133 :
NAME IS NULL :2006/06/12(月) 15:05:27 ID:FxCKEb5h
質問です。 FBに対して、ローカル接続のアプリを2つ用意して、 Winのスタートアップに2つとも入れると、 フリーズ(接続でかな?)することがあるのですが、 そういうことありましたか? この事以外は非常に安定してんだけどな。
もうBDEはやめようよ・・・。
135 :
132 :2006/06/12(月) 17:57:48 ID:???
>>134 そうなんですよね。
しかし今回はD5なのでBDEで置き換えるしかないんですよね・・・
>>135 つ Delphi/IBX(BDE不要)
138 :
132 :2006/06/12(月) 18:42:55 ID:???
>>136 >>137 レスありがとうございます。
IBXでも試してはいるのですが、トランザクション管理がいろいろ大変だとか本に書いてあり、また現行からの移行なので最悪ODBC→BDEでやろうとおも思っています。
>>132 DBをDialect3で作成しているんじゃないかな?
BDEを使うならDBをDialect1で作成する必要があるよ
FIBやIBO使ってDialect3で運用するのが良いとは思うけどね・・
>>133 FBサーバが起動する前にアプリが起動しちゃってるとか?
フリーズするってのがよくわからんけど
140 :
132 :2006/06/13(火) 10:18:19 ID:???
>>139 ありがとうございました!まさにそのとおりでした。デフォルト3なんですね・・
運用の変更も提案するべきですよねやはり・・・
EmbeddedとSuperserver、ローカル使用限定で比較したら、やはり埋め込み専用の Embeddedの方がパフォーマンスが高いんでしょうか? プロトコルスタックなど余計な物を必要としない分、使用メモリに関してはEmbeddedの 方が上かとは思うのですが、速度の面ではどうなんでしょう?
素人で申し訳ないのですが、 UDFを使いたくてib_udf.sqlを実行して登録でき、無事使用できているのですが、 これって一度登録しておけば、後は半永久的に使用できるんでしょうか。
>>142 そのデータベースの中ではずっと使えるよ。
もし新しいデータベース作って、そのデータベースでも UDF使いたければ
また登録する必要があるけど。
要はデータベースごとに設定する必要があるってこと。
144 :
NAME IS NULL :2006/06/21(水) 01:22:25 ID:HZxBOcDb
>>141 パフォーマンスは高いです。二倍くらいというウワサも....
145 :
142 :2006/06/21(水) 09:28:44 ID:???
146 :
NAME IS NULL :2006/06/23(金) 11:58:34 ID:2iwKyIt0
EmbeddedってWinとか8086系以外でも使えるんでつか?
やったことはないんで保証は出来ないけど、ビルド関係のスクリプトとか みると POSIX 互換でコンパイル可能なら大丈夫っぽい
>>132 BDEで使う場合、Interbaseドライバでいけるよ。FB1.5。
型が無効です、って言ってるのはBDEのエラーじゃなくてTQueryとかじゃない?
SQL Explorer(DBExplorer)でSQL発行してもエラー出る?たぶんでないと思うよ。
IB6やFB1.0系で作った既存のアプリの場合、Date型の仕様変更とかがあって
FB1.5で使うにはデータセットのフィールドの型をかえるとかの修正が必要だった
と思う。サーバ側のオプションも関係するかもしれないけど、とにかく俺FB1.5+BDE
でやった案件あるから。
ただし、おすすめはIBO。BDEからの移行もらくちん。
.NetデータプロバイダーV2.0の正式版Final ( 2006-06-23 )が出たようです。 Firebird 2.0 本体はもうすぐでしょうか。
>>149 これに付いてくる DDEX Provider って何?
151 :
NAME IS NULL :2006/06/28(水) 23:53:08 ID:MBnQjDfF
>>150 DDEX defines a systematic approach to extending data designers and data-related features of
Visual Studio 2005 to object hierarchies provided by third-party data sources.
This allows design-time access to the external data source objects and entitles them to
"full citizenship" in the Visual Studio design time experience.
と言う事です。
VS2005のデータ・デザイナーとDBの階層構造の違いとかを吸収し
DDEXが承認してアクセス権限を与えますよ。 って事だと
意味あってるよね。 誰か訳して・・・
153 :
NAME IS NULL :2006/06/30(金) 01:16:04 ID:eGXE9qA8
154 :
NAME IS NULL :2006/07/08(土) 09:07:44 ID:SD8nxHSo
156 :
NAME IS NULL :2006/07/09(日) 00:25:59 ID:GdbuNHKv
リリース候補なんだから、問題なけりゃリリース版になるのは当然なわけで 1.5の時はなんだかんだでRC9まで行ったからなあ…
>>152 遅レスだけど、それExpress版じゃ使えないんだね…。がっかり。
>>159 あれ? このDDEXって、Firebirdを
> ツール(T)→データーベース接続のデータソースで
使えるようにする奴だよね?
>>160 Express版ってディフォルトアクセスとMSSQLだけだけど
設定方法あるの?
無料版って出来ないと思って調べてない知ってたら教えて
>>161 いや、Express版だと無理だねえという話。
2.0のWhat's New 日本語版ってどこかにない?
FireBirdのチューニングについて解説しているサイトとかないのかな? firebird.confのDefaultDbCachePagesとかSortMemBlockSizeとかいじると もっと早くなるのかなと。。
このスレをGoogleで発見して 某Webブラウザのことかと思って飛び込んだ俺はイッテヨシですか。。。
ここがどこの板かを気にしなかった時点で
>>164 wikiの方に設定項目の解説ならあるみたいよ。
でも、そもそもチューニングがいらないのがFirebirdのウリの一つだし
そんな劇的にパフォーマンスの変わる設定項目はないよ。
遅く感じるのはおそらく非効率なSQLを投げてるんじゃないかと。
168 :
NAME IS NULL :2006/08/04(金) 08:19:52 ID:MlH2fmbS
D7+FB1.5.3+IBXで始めて開発してるんですが、TIBQueryで参照項目を設定すると 入力が極端に遅くなることがあるのですが、参照項目は使わないほうがいいのでしょうか。
>>169 参照相手が巨大なテーブルの場合には遅くなるんじゃなかったかな?
>参照項目 これって何? select a,b,c ^^^^^^^ のこと?
>>171 項目の新規追加で作るDelphi側の機能のじゃない?
>>168 BDEの頃試してみたけど、遅くてすぐに使うのやめたような・・。
TIBSQLMonitorで参照項目が実行しているSQLの数とかわからないかな?
173 :
169 :2006/08/09(水) 20:05:26 ID:???
ありがとうございます。 参照項目で参照されるマスター側をTIBQueryからTIBTableに変えたら 現象は解消しました。 参照項目でTIBTableを使うと遅くなるとか以前Interbaseのスレで読んだので使わなかったんですが 今のところ大丈夫なようです。
firebird で mysqldump みたいなことをする方法ってありますか?
175 :
NAME IS NULL :2006/08/12(土) 09:20:17 ID:zhXVD21p
176 :
NAME IS NULL :2006/08/15(火) 13:54:43 ID:HdGLaFVe
インターベースと異なる進化を遂げてますか?
どっちも独自に進化してると思うけど、 あっちは Firebird の良いところ(コード)もパクって機能強化してるんじゃね? まあしゃあないけど。
IB開発者はFBソースを参照できるけど、逆はできないしな。 ま、互換性はどんどんなくなるんだろうな。 まだMSSQLとSybaseほどには離れてないけど。
179 :
NAME IS NULL :2006/08/17(木) 15:26:12 ID:2xhvp2ws
はじめまして。 udfを使用したく、isqlでInputコマンドでロードしたのですが、udf関数を使用すると SQL実行中に以下のエラーが発生しました。 エラーコード:335544831 Access to UDF library "ib_udf.DLL" is denied by server administrator SQLステータス:HY000 が出てしまい使用できません。アクセス権も設定しないとだめなんでしょうか?
180 :
179 :2006/08/17(木) 18:26:20 ID:2xhvp2ws
その後の調査で DECLARE EXTERNAL FUNCTION abs DOUBLE PRECISION RETURNS DOUBLE PRECISION BY VALUE ENTRY_POINT 'IB_UDF_abs' MODULE_NAME 'ib_udf'; となっていたのを DECLARE EXTERNAL FUNCTION abs DOUBLE PRECISION RETURNS DOUBLE PRECISION BY VALUE ENTRY_POINT 'IB_UDF_abs' MODULE_NAME 'ib_udf.dll'; と変えてみたのですが、今度は エラーコード:335544343 invalid request BLR at offset 130 function ABS is not defined module name or entrypoint could not be found と出てしまいました。 なかなかうまくいきません・・・
>>179-180 FirebirdのUDFフォルダの中にib_udf.dllがないんじゃない?
182 :
179 :2006/08/18(金) 14:36:29 ID:???
>>181 レスありがとうございます。自己解決しました。
一度まっさらにして180を実行したところうまくいきました。
デフォだと拡張子入ってないからそれが原因だったのかなあと・・・
Firebird 使ってる売り物って TKC 以外で何がある?
delphiでデータを大量に削除した後にデータベースファイルのサイズも小さくしたいんですが どうすればいいですか。 データを削除しただけではファイルサイズは変わらないようなので。 あとdelphiからバックアップ、リストアのやり方も教えてください。 環境はD7+IBXです。
Delphi + Firebird で UNICODE データを扱う必要が出てきましたが, どこか良い情報がまとまっているところ,有りませんでしょうか
>>184 バックアップ・リストアをしないとサイズを小さくする事はできません。
大量に削除したならパフォーマンス落ちてるからパフォーマンス回復の意味でも
バックアップ・リストアした方が良いと思うよ。
Delphi7は持ってないからわからないけど、「TIBBackupService」と「TIBRestoreService」って
コンポーネントない?
あればそれでできそうな・・。
サンプルはDelphiのインストールフォルダに入ってないかな?
> unicode 使ってるヤシは少ないと思うが。 時代に取り残された感じのソフツですね。
> unicode 使ってるヤシは少ないと思うが。 それは IB/FB では少数派。ということですか? TnT は既に使用しています。 DBExpress では UNICODE_FSS は手作業で WIdeStrin に変換しなければいけないわけですが そういったことを面倒見てくれるライブラリが無いかな。と。
>>193 その程度のことなら自分で作っちゃえばいいじゃん。
OracleのSQLをそのまま移行したところ、SUM関数の戻りが極端に遅い気がします。 Indexも同じように貼っているのですがこれは仕方ないことなのでしょうか?
>>197 同じマシン環境で? 極端にっていうのがどのくらいかわからんけど、
俺のこれまでの体感では同じくらいだなぁ。2倍遅いくらいなら
Oracleのチューニングがうまくいってたから、とかかもね。
>Indexも同じように貼っているのですがこれは仕方ないことなのでしょうか? Firebirdでもそれと同じIndexが使われるとは限らないと思うが。 あとは使用機がSMPとかハイパースレッディング有効/無効とかによって パフォーマンスに大きな差が出たりするんじゃない? できればいろいろな環境で試してみたら如何でしょうか。
200 :
NAME IS NULL :2006/09/04(月) 17:18:36 ID:GNeWJ5x6
キャッシュの量の設定もあるよね FB/IBってメモリの使用量もデフォルトだと控え目だし
201 :
NAME IS NULL :2006/09/05(火) 13:50:48 ID:DWXKTRAH
202 :
NAME IS NULL :2006/09/08(金) 11:09:00 ID:EVRlL+hx
既に作ったテーブルのフィールド名を変更したいのですがどういうSQLを書けばいいですか? 1個目ってフィールドでやったら1と個目がバラバラに認識されるようで SQLが通りません
204 :
NAME IS NULL :2006/09/12(火) 10:30:35 ID:JuC3GRrG
すみません。delphiでParadoxを使っていたのですが、FireBirdに変えようと思います。 FireBirdでは、フィールド名に日本語を使えますか?
Linux-amd64用の1.5ビルドって前出てたと思うけど、今はないの?
207 :
205 :2006/09/13(水) 02:37:31 ID:???
>>206 サンクス。1.5.3は無いようですね。1.5.2を試してみます。
>>196 そのせいか、PSUは今ヤバイことになってる
209 :
NAME IS NULL :2006/09/13(水) 14:36:30 ID:JIzm7yR3
kwsk
210 :
NAME IS NULL :2006/09/13(水) 15:16:10 ID:tm8OTJgB
LinuxにFireBird1.5.3をインストールする場合、glibc2.3以上が必要でしょうか?
>>206 wikiの Q&A にも書いてあったけど、一応は使えなかったっけ?
""で囲んで。随分前に試した覚えがあるけど大丈夫だった記憶がある。
http://firebird.skr.jp/wiki/FAQ 本来は日本語のためじゃなくて、予約語と同じ名前などを列名につかうために
名前のチェックを外す機能なんで、色々問題起きる可能性があるから使わない
ほうがいいみたいだけど。
WindowsVistaRC1にFirebird1.5.3入れてみたんですが、 LocalServerに接続できなくてお手上げです。 どなたか情報お持ちでないですか。
Oracle8 R8.0.6 まだ使っている人いる?
214 :
206 :2006/09/14(木) 21:23:48 ID:???
>>211 ""で囲んで1.5の始めの頃はできた気がするね。
変なバージョンでスマンが手元にあった2.0のαではダメだったよ。
詳しくは調べてないから詳しくはわからんです。
>>212 127.0.0.1:C:\database.fdb
みたいなローカルループバックでどう?
スマソ。すれ間違った。
217 :
212 :2006/09/15(金) 10:08:23 ID:???
>>214 THX。接続できますた。
でもこれって不具合?
M$に報告しておいたほうがいい?
218 :
206 :2006/09/15(金) 22:54:17 ID:???
>>217 情報とかまだみかけないから不具合かどうかはわからないな
Vista側の設定で変わるかもしれないし、
そもそも原因がわからないと・・。
220 :
NAME IS NULL :2006/10/06(金) 09:39:53 ID:PcsFiZiV
>LocalServerに接続できなくてお手上げです。 >Vista 多分、これのせい。 kwsk
221 :
NAME IS NULL :2006/10/07(土) 10:57:46 ID:60B4CM0w
メッセージを使ってサービスと通信できなくなってるんだ。 中見てないからわかんないけど、Windows では設定に通信用ウィンドウの設定が あるからローカルサーバとの通信ではメッセージ使ってそうだよね。
222 :
NAME IS NULL :2006/10/11(水) 09:22:55 ID:k5F24cJg
>メッセージ WinからアプリへのWM_???メッセージのこと? WM_USER+X、みたいな香具師?
223 :
219 :2006/10/11(水) 13:26:10 ID:???
なんでstdevがないんだ。UDFでも作れんし。なんとかしてくり
FB1.0.3 を XP以降で使える様にするソースって不要でしょうか? 必要な方がいればアップしようと思うのですが。
>FB1.0.3 を XP以降で使える様にする 使えないんだ?
>>226 普通に使える。
今でも現役で動いている。
ただ彼の環境がおかしいだけ。
>>227 1.0.3はXP以降でも動くけど接続と切断が遅いのです。
実用的な速度にならないアプリもあります。
もしかしたらBDE接続アプリだけの問題なのでしょうか?
>>228 BDEは使いものにならん。
あれは遅すぎる。
まぁ、チューニング次第である程度のスピードは出るけど
そんな事するぐらいなら一日かけてIBX等のコンポつかったほうがマシ。
遅いとか以前に、いつまでもBDEを延命させるのは勘弁してほしい。
BDEの代わりに何使うわけ? IB/FB以外の場合。
>>231 dbExpressかねぇ?
つか、親和性もとめるなら素直にIBやFBを使ったほうがよくね?
俺ならIB/FB 以外の場合は ADO 使うと思う。
>>229 BDEってそんなに遅い?
少し遅いくらいだと思うんだけどな。
>>228 "拡張子がGDB"だというオチじゃないんですよね。
gdbだと遅いの?
>>236 遅い。
システムの復元関係でね。
ぐぐれば症状と解決策がわかる。
>>235 拡張子の変更は実施しています。
ネット上の情報(システム復元停止、拡張子変更、isc4.gdb対策)では
不具合を解消するに到りませんでした。
結局、以下のfb1.5 ChangeLog.txt を見て
--
2003-02-12 23:57 arnobrinkman
* firebird2/src/jrd/: cch.cpp (1.28), jrd.h (1.35), vio.cpp (1.30):
Stripped implementation of events used by garbage_collection() &
cache_writer() procedures. This will fix known delay with
connecting/disconnect on at least WinXP. Also are the
connecting/disconnecting delays while debugging in MSVC6 gone.
--
ソースの変更を思い立ったのです。
239 :
225 :2006/10/22(日) 08:21:16 ID:???
240 :
225 :2006/10/22(日) 09:16:57 ID:???
TIMESTAMPフィールドから1分引くにはどうやればいいんですか?
標準添付のUDFを組み込んでそのための関数を使う
243 :
NAME IS NULL :2006/10/23(月) 15:22:17 ID:1k/ArfC+
>>241 tsがTIMESTAMPフィールドとして、n分引くには以下でいいはず。
ts - ((n * 60) / 86400e0)
244 :
NAME IS NULL :2006/10/25(水) 11:13:24 ID:yGeIcbEV
.NETでFirebirdって、どうやって使うんですか?orz
246 :
NAME IS NULL :2006/10/26(木) 12:26:51 ID:8x3u01xA
UTF8使えますか?
248 :
NAME IS NULL :2006/11/03(金) 21:31:56 ID:zPf3PLLR
250 :
NAME IS NULL :2006/11/05(日) 14:25:58 ID:Bz8nqO54
キャラクタセットを設定する
>UTF8使えますか? UTF8ってコードのエリアがASCIIと変わらないから使えないというのはありえない。 >キャラクタセットを設定する キャラクタセットNONEでも使えるお。
>>251 ありがとう。
CREATE TABLEのときの文字数との関係とかNCHARとは何?とかが
いまいちよく分からなくて・・・・
DBのカラムから過去のライブラリまで、charのまんまいけるのが、UTF-8の利点じゃね?
キャラクタセットって指定しなくてもなんでも入るけどさ、 指定してるときとそうでないときでソートの順序がちがうよね?
>>254 その点は数字同士とかアルファベット同士とかかな同士で正しければあまり問題ないです
ソート順よりもLIKE条件の方が痛いなー。
SQLのLIKEってそんなに役立つ? LIKEの判定をオーバーライドできるわけでなし。
>>225 発言を今見ました。まだ見ていたらお手数ですが
再アップしてもらえませんか。
1.03+XPでは確かに接続切断に時間がかかる現象が発生します。
(BDEじゃなく、PHPの関数で接続でも発生します)
バイナリとできればソースの両方あると安心です。
よろしくお願いします。
2.0がやっとリリースされたので、早速入れてみたところ、 なんか遅い。。。 バックアップからリストアしてODSが11.0になったのも確認したんだけど。。 なんか、プランが1.5よりも悪い気がする。 ほかの人はどうですか?
261 :
258 :2006/11/14(火) 18:03:07 ID:???
262 :
NAME IS NULL :2006/11/15(水) 17:57:47 ID:p7BgIwN1
WindowsでFirebird2.0を使っているのですが、 MysqlやPostgresやSQL Serverでいう、インフォメーションスキーマってありますか? システムカタログみたいなテーブルがあったら、それでもいいのですが。 どうぞよろしくおねがいします。
263 :
225 :2006/11/16(木) 06:18:45 ID:???
264 :
258 :2006/11/16(木) 18:22:49 ID:???
>>263 =225
今しがた、いただきました。
取り急ぎ、お礼まで。
開発環境がよくなりますです。ありがとう。
えーと、2.0になって何が出来るようになったんだっけ? FROM句サブクエリーぐらい?
FB1.5.3でレコード追加順に連番を振る項目を追加したいんですが、トリガーとジェネレータは判ったんですが 既存のレコードに連番を振るようなSQLってどう書けば良いんでしょうか。
>>266 連番になるとは限らないから。(欠番が出ちゃだめなら使わない方がいいよ)
>>267 >>268 どうもです。うまくいきました。
別に欠番があっても問題ないのでとりあえずこれで行きます。
270 :
NAME IS NULL :2006/11/18(土) 03:53:46 ID:kObfcDfE
271 :
NAME IS NULL :2006/11/18(土) 04:07:37 ID:kObfcDfE
ぎゃあぁああ、2.0ではOPEN,CLOSEは予約語か! こりゃ随分手を入れないとダメだなあ…orz
273 :
262 :2006/11/19(日) 00:00:49 ID:???
>>270 色々と探してはいたのですが、これは知りませんでした。
私が取得したい情報は、これで何とかなりそうです。
ありがとうございました。
>>272 ダブルクォーテーションで囲む、予約語回避機能では通らないかな?
2.0の差分はリリースノートでわかるけど、2.0に対応したリファレンスマニュアルはない?
完全なマニュアルってIB6.0のものしかないよね? なんでマニュアルつくらないの?
>>279 はぁ?俺が言ってるのはFoundationで成り立ってるプロジェクトなんだから、
無償ボランティアや他企業がマニュアルつくるまで誰も作らないなんて変だろ、
っていうことなんだけど。
282 :
NAME IS NULL :2006/11/30(木) 10:50:06 ID:jaelGuvj
オフィシャルなユーザ会があるのに、相変わらず国内の情報で一番まとまってるのが
ユーザ会とは全くの無関係の
>>1 のWikiという現状はいつまで続くのか。
日本語マニュアルがないのはFirebird日本ユーザ会の責任。
作ると手を挙げてからダラダラと引き延ばしてる。
https://sourceforge.jp/projects/firebird-jp-doc/ もう三年以上経ったというのに成果物は皆無も同然。
作らないのならはっきりと「作るのやーめた」って言わないとダメ。
そうしないと「じゃあ俺が作る」って人も出てこないし、出てこられない。
FB1.5.3で既存の列をnot nullに変更したいんですがSQLでは出来ないんでしょうか?
wikiのSQLリファレンス見るとわかるけど、ALTER TABLE で出来るのでは? 表制約追加できるみたいだし
>>284 IBExpertでやったらこんなSQLが出てきてたよ。
update RDB$RELATION_FIELDS set
RDB$NULL_FLAG = 1
where (RDB$FIELD_NAME = 'フィールド名') and
(RDB$RELATION_NAME = 'テーブル名');
not nullを外すときは、1がnullになっていた。
>>285 wikiには書いてないんですよ。
>>286 私も同じでした。
それであれっと思って調べてもやりかたが見つからなかったので質問したんです。
>>283 いや日本語マニュアルなんてどうでもいい。英語のマニュアルでいいから
2.0完全版がほしい。いつまでも6.0マニュアル+リリースノートではきつい。
>>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
>>290 ああ、やっぱり変更できませんか。
ドメインを使うってのは盲点でした。
ありがとうございました。
誰かDBまるごとSSDにつっこんで運用してる人っている? やっぱ速ぇーのかな?
>>292 ソフトウェアRAM DISKに500MB未満のをブチ込んでるが
やっぱりHDDとは天と地の差。
金に余裕が出来たら・・・って100万くらいか?
>>292 USBメモリや、メモリカードにつっこむとか....
フラッシュは遅いし書き換え回数制限があるんじゃなかったか?
ってかFirebirdって遅くね? PostgreやMySQLに比べてどうよ? 一概には比べらんね・・・ってのはナシね 経験者の感覚的なもので良いので ベンチマークとってみた暇人でも良し 意見をくれ
人の主観を聞いたり人にやらせることに何の意味があるんだろ・・・
>>283 ドキュメントには肝心の
「トランザクション回数には限りがあり、そのたびにバックアップ・リストアをしてね。」
が抜けてるな。
>>296 postgresも使ってるけどfirebirdが特に遅いとか感じたことはないけど、
何を根拠にそう感じるのか書いてくれない?ぜひ参考したい。
ただ、firebirdはフリーで使えるレプリケータがないから俺は最近
postgresに移行しつつある。
それはそうと日本語情報少ないのがfirebird普及の大きな妨げになってるよね。
資料がなくてもそこそこ使えるってのがメリットでもありデメリットになってるって 感はあるかな
302 :
296 :2006/12/20(水) 23:23:35 ID:???
>>299 では経験上の話・・
特に更新が多発するアプリケーションで、1つのテーブルに
100万〜200万レコードが入り出したあたりから急にinsertやdeleteが遅くなると思う。
ストアドプロシージャとトリガーを多用するとさらに顕著。
それとクライアントからの接続プロセスが多いと悲しいほど検索/更新が落ちる時がある。
あと、どんどんレコードバージョンが増えるにつれてインデックス性能が落ちるような気が。
バックアップ/リストアすればいいんだが、24/7のシステムではリストアが難しく実運用が困難だなぁ・・と。
Firebirdで開発する前にきっちりと検証したほうが良いね。当たり前だけど。
>>301 参考にさせてもらいます。
postgreは8.1と8.2でパフォーマンスが良くなっているらしいから、さらに差が出るという事か・・。
>>296 会計関係のわりと単純な案件だったけど Firebird 使った時、
試しに出納明細 470 万行以上つっこんで集計したりしたが、
ストレスなく動いたんで安心して納品しました。
Vista対応はどうなってんの?
>>305 Vistaに1.5.3入れたらコントロールパネルを開くとExplorerが死ぬようになった。
さらにサーバーマネージャが正常動作していないっぽい。
Vistaで使うなら2.0を入れた方がよさそう。
2.0でもVista上ではローカル接続ができない(セッション0問題?)。
localhostや127.0.0.1でのループバックアドレスによる接続は可能。
ガーン。2.0に強制逝行か。 アプリの修正無しでいけるかなぁ? IBX使ってるんだけど。
>>305 インストールしたのはSSですよね?
CSでも同じ状況になるのでしょうか?
>>305 インストール時にコンパネの追加チェックを外せば大丈夫です。
>>308 それだけの問題なんだ。
ところで2.0だと問題が発生しないのはなぜ?
2.0開発がVi$ta対応だからってこと?
Firebird2Control.cpl の作成方法が変わったんじゃない? それか、インストールシールド?を変えたとか。
それならFB1.5のインストローラーも直して欲しいおね。
しかしVistaって糞だな
「某スレ」って BDS2006 のスレかな? FBLib、面白そうだけど、ソースを見る限り文字列の受け渡しはことごとく String でやっていて、WideString は一切考慮していないようだ。 UNICODE_FSS のデータベースには FBLib は使えそうにない。 俺は現時点では Delphi + Firebird での案件を複数製造中だが、今のところ SJIS_0208 で作っているので IBX でやっている。でも近いうちに FIBPlus の ライセンスを購入して UNICODE_FSS の世界に行くと思う。
>FIBPlus FreeIBComponentsの派生なんだ。 やっぱ、Plus側が正式にFBをサポートしているってことかな?
317 :
315 :2006/12/28(木) 11:16:14 ID:???
FIBPlus は正式に Firebird 2.0 をサポートしている。もちろん UNICODE_FSS の 読み書きもできるし、配列も使える。1 ライセンス 235 ユーロ(約 35,000 円) もするが、本格的に Firebird を使って商用プログラムを作るのであれば元は 取れるんじゃないかな。ただし英文マニュアルやサンプルコードを読むことを 厭わないのが条件かと。 管理ツールは IBExpert のパーソナルエディションがあれば、ほかは何も いらないと思う。 フリーの Firebird コンポーネントでユニコードの読み書きができるものは 俺は知らない。
データベースがunicodeであろうとsjisであろうと 操作するクライアント側のキャラクタエンコーディングは クライアント側の処理系に合わせれば別にいいんじゃない? サーバ側がデータベース保存時に変換してくれるわけだから。 delphi(win32) 使ってるんなら sjis で特に問題はないと思うけど違う?
変換が完璧じゃないからって理由じゃないのかな? 1.5.4のRC1が出たようだね。
315はユニコードのことがあまり分かってない気がするのは俺だけ?
322 :
315 :2006/12/29(金) 16:25:57 ID:???
>>318 >>320 俺、何か勘違いしている? 例えば「?」(U+33A5)のように SJIS でコードが
割り当てられていない文字を SJIS_0208 のデータベースには入らないし、
Delphi の string では扱えないから WideString で受け渡しする必要が
あるよね?
何かヘンなことを言っているようなら指摘をお願い。
323 :
315 :2006/12/29(金) 16:27:00 ID:???
うが、書き込み確認画面ではちゃんと表示されたのに。「例えば」の後ろに 書いた文字は立方メートルです。
そもそも表示できない文字なら(ry
>>322 「WideString=ユニコード」ではないとだけいっておこう
WideString = UTF-16 UNICODE_FSS = UTF-8 ってことでしょ。
327 :
NAME IS NULL :2007/01/04(木) 09:09:34 ID:XbcnlGt1
>>319 >1.5.4のRC1が出たようだね。
Vi$taでの動作報告キボン。
328 :
NAME IS NULL :2007/01/10(水) 22:44:14 ID:nlkGW7YX
a.gdbとb.gdbがあってa.gdbの中のtableAののデータをb.gdbのtableAにコピーしたいのですが IBExpertとかのツールを使って出来ますか? プログラムを書かないと無理でしょうか。
>>329 IBExpertならメタデータの抽出かTableDataComparerでできると思うよ
>>330 どうもです。
コマンドラインツールですか、後でr試して見ます。
>>331 テーブルを開いてスクリプトのエクスポートでinsert文の羅列を作ってコピー先のデータベースでスクリプトを実行してできました。
Javaアプリから動的にCREATE DATABASAEしたいんですが、 もしかしてできませんか? jdbc:firebirdsql:ほにゃらら で存在しないDBは指定できませんよね?
C#2005を使おうと思うのだが、.Net Data Provider2.xは どのFirebird対応? 1.5.x?2.0.x?
当方 VS 2005 C# .NET Data Provider 2 で Firebird 1.5 でも Firebird 2.0 でも動いてます。
両方対応? もうバージョンがありすぎてわけわかめ とりあえずFirebird1.5.4で動いてるからいいか・・・
337 :
335 :2007/01/17(水) 21:36:49 ID:???
今、開発中の案件で、去年年末まで 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 さんはそういう必要があったら気をつけて下さい。 長文、失礼しました。
>>337 まじ?
ホントにそうなら気をつけようがないよ....
>>337 トランザクションしないのは1.5?2.0?それとも両方?
接続文字列のIsolationLevelとか
BeginTransactionメソッドの引数のIsolationLevel、FbTransactionOptionsとか
関係ありそうだけど
たぶん実装されてないんじゃない?
>>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) ;
>>339 >>たぶん実装されてないんじゃない?
んな馬鹿な?
だって、それぞれトランザクション制御のAPIを内部で呼ぶだけでしょ。
実装しない理由がわからない。
>>337 詳細求む
343 :
335 :2007/01/19(金) 19:52:36 ID:???
なんかアクセス規制かかっててレスできませんでした。 で、> 337 は、ちょっと説明不足でした。 コミット、ロールバックは普通にできるんですけど テーブル ロック、レコード ロックができなかったんですよね。 排他処理用テーブルをテーブル ロックなりレコード ロックなりして 悲観的排他制御しようとしたらできなかったから、 別の方法で悲観的排他やって今回はすませました。 それ以外の動きは私は困りませんでした。 .NET Data Provider 2 Firebird 1.5 で試した時の話なんで .NET Data Provider 2 Firebird 2.0 なら、もしかしたら大丈夫なのかな? 今度、時間があったら試してみますかね。 339 さんの言うように、ひょっとして実装されて ないのかとも思ったんですが、リファレンスには パラメータの事とかちゃんと書いてあるし・・・・・ どなたか、もし試す機会があって、ちゃんとできたら どういう設定とプログラムでできたか教えてもらえますか?
>>340 サンクス!
FirebirdのサイトでFBManagerで検索したらFAQにありました!
Sample Web Apps なんてタイトルじゃ見つけられらないよ・・・。
346 :
NAME IS NULL :2007/01/30(火) 17:01:25 ID:eM5iBTh+
FB1.5を使ってた方はFB2.0に移行するもんなんでしょうか?
個人的にはまだ移行してない
>>346 既存のアプリで、速度的にも、機能的にも問題ないのなら
わざわざ移行しなくてもいいんじゃない?
>>343 そもそもテーブルロックってFirebird自身に機能がないんじゃない?
どんなSQLが発行されるのを想定してる?
351 :
NAME IS NULL :2007/02/03(土) 15:44:08 ID:p4r1nQO3
>>351 isqlではできますね。
内部的には、isc_start_transactionのisc_tpb_protectedを指定するので、
通常のRDBMSが、以下の順番で指定するのとは対照的に、APIの引数を準備するために
(2)->(1)の順番で指定するか、(1),(2)を同時に指定する必要がありますね。
(1) トランザクションスタート
(2) テーブルロック
(3) コミットorロールバック
プロバイダー、まだ入れてないので、入れたらみときます。
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 :2007/02/20(火) 11:15:24 ID:HIBuGGic
みんなVi$taで使ってますか?
訳きぼん
簡単だけど訳してみた。 ↓ 「FirebirdはWindows Vistaでは動くの?」 はい!動きますよ。
359 :
NAME IS NULL :2007/02/26(月) 09:06:13 ID:gv7eFO9d
>>359 Firebird 2.0ならできるよ。Firebird 1.5以前は無理。
1.5までどうしてもやりたいなら、ストアドでも組まないと駄目だね ストアド内で生成した文字列をSQLとして解釈して実行する機能を使うとかすれば わりと色々できるけど、面倒ではある
362 :
359 :2007/02/27(火) 08:11:34 ID:???
>>360-361 ありがとうございます。
まだストアド使ったことなかったので、昨日色々調べてストアドでやってみました。
結果、うまくいきました。どうもありがとうございました。
364 :
NAME IS NULL :2007/03/02(金) 11:07:10 ID:0ZTZtv0+
Firebirdでrdb$relation_nameとかのrdb$・・・・の解説ってどこかにありますか?
365 :
364 :2007/03/02(金) 13:24:10 ID:???
すいませんInterbaseのマニュアルをDLして自己解決しました。
viewについて教えてください。 SQLのSELECT文で普通のテーブルとビューを組み合わせて使用すると 結果が返るまでにとても時間がかかるのですが、 解決方法ありますでしょうか。
>普通のテーブルとビューを組み合わせて使用すると ビューになってねー
368 :
367 :2007/03/06(火) 17:36:09 ID:???
ヒント:ビューの作り直し
369 :
366 :2007/03/06(火) 17:52:15 ID:???
あれ...なんか使い方おかしいですかね? select T1.CODE,V1.VALUE from TABLE1 T1 left join VIEW1 V1 on (V1.CODE=T1.CODE) みたいな使用方法なんですが。
ビューとテーブルをJOINするとビュー側はインデックス使わないんじゃない? 出したい結果を出すビューをあたらしく作った方がいいよ。
371 :
366 :2007/03/09(金) 12:27:48 ID:???
そうですか。ところでちょっと気になったのですが、
select V1.CODE,V1.VALUE from VIEW1 V1
とやるとすぐに結果は返りますのでビュー自体の反応は悪くはないです。
>>369 の例をやると、T1のレコード件数に比例して遅くなるような気がします。
つまり、T1の件数分だけV1のオープンクローズを繰り返している感じがするのです。
これが事実だとしたら、抑制するようなスイッチとかあるのでしょうか。
手間をかける方向性が間違ってるな。 そんなこと調べてる間にVIEW作り直した方が早いじゃん。
373 :
NAME IS NULL :2007/03/09(金) 18:37:37 ID:05+kEELh
>>抑制するようなスイッチとかあるのでしょうか。 未だかつて、見たことないっす。
374 :
370 :2007/03/09(金) 23:46:07 ID:???
>>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 :2007/03/11(日) 20:41:33 ID:kknmZXvK
376 :
NAME IS NULL :2007/03/14(水) 00:53:54 ID:jSDKBnm7
Windows版なんだけど、一般ユーザーでも使えるようにするにはどうすればいい? もしかして管理者権限ないと駄目なのかな・・・
どういうこと? 一般ユーザでインストールできるかどうかってこと? だったらAdministratorsの権限がないとインストールが出来ないのは Windowsのサービスなら当然だと思うよ。 DBへの接続の話なら一般ユーザでもできるよ。
管理ツールはIBExpert一択で良いと思うんだけど、なんでまた 次から次へと出てくるんだろ?
381 :
NAME IS NULL :2007/03/21(水) 14:50:26 ID:hV0DLcWl
テーブル名を変更するには、どういう SQL 文を使えば良いですか? alter table hoge rename to hoge2 だとエラーになりますが
>>380 マルチプラットフォームで動かしたい→Flamerobin
同一GUIで各種DBで動作させたい→DBWorkbench
クライアントをUnicodeで動作させたい→BlazeTop
その他いろいろと思惑があって、次から次へとでてきてます。
>>383 ありがとうございます。
やっぱできないんですね。
ここで質問していいのかちょっと不安なのですが、よかったらご教授下さい。 現在自社(中小)でFirebird1.5+Delphiで簡単な生産管理を行っています。 社員の要望を受けているうちに機能が増えて徐々に使用するユーザーが増えてきました。 しかしFirebirdのサーバーを入れているマシンは貧弱なPen3-550でOSもWinXPです。 ハードは新しくしようと思うのですが、OSをどうしようか悩んでいます。 WinXPでは当然接続数の上限から、この先不都合が発生すると思われますが WindowsSrver2003を導入するほどのスキルも無いし、コスト的にもちょっと大袈裟かと思ってます。 同時接続は最大で20クライアント程度ですが、この程度の規模であればサーバーは どういったものが適切なんでしょうか?
>>385 確かにWindowsXPだとライセンス上、10台までしか接続できないけどそういう話?
単にパフォーマンス上の懸念なら、その規模ならWindowsXPでも問題ない。
WindowsServerって言ってもドメインだのADだの構築するんでなけりゃ、必要となる
スキルはXPと変わらない。
コストがかかるのが嫌ならLinuxや*BSDにするのがベスト。
でも動かしてるのが業務上クリティカルなアプリケーションで、かつ自分にサーバ構築の
スキルが無いという自覚があるなら、アウトソースしる方向で考えないと自分の首絞めるよ。
387 :
385 :2007/03/23(金) 16:05:53 ID:???
>>386 同時接続数について詳しくないのですが、DBサーバーやWebサーバーへの
接続についても10接続を超えると、それ以上接続できなくなるのでしょうか?
それともライセンス違反というだけですか?
一応Linuxも視野に入れて検討しており、とりあえず別のハードで試験運用して
みようかなと思ってます。
>>387 ライセンス違反と言うだけ。実際に接続できないなんて事はないよ。
389 :
385 :2007/03/23(金) 16:38:24 ID:???
>>388 そうなんですか?んじゃライセンスを守るという意味で
接続数をどうやって管理すればいいんだろ・・・
実際の運用では同時に10人以上の接続はかなり稀なケースなんで
ハードだけ増強してOSはそのままでもいいか。
>>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にこだわるメリットは特にないからね。スキルだけか。
デュアルの場合、CS入れるとパフォーマンスも少しは上がるかな? 接続は遅くなるかもしれないけど
>>392 そう思って前にやってみたけど変わらんね〜。
SMPでの性能向上は3.0とかその後に期待かな?
へぇ。まだ何かやる気あったんだ>ユーザ会
>395 今の理事長は毎月セミナーやっているぞ。多少はやっているらしいぞ
でもユーザ会のトップページ左側のメニューには「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 :2007/04/03(火) 20:57:15 ID:???
s/有史/有志/ # 俺も Firebird を便利に使わせていただいている一人なので、 # よさがもっと認識されてほしいと思っているんよ。 # 気を悪くしたらゴメンよ。> ユーザ会の中の人
おれもユーザー会には頑張ってほしいと思ってる。 ただ企業系の人中心なせいか、他のオプソコミュニティとの 温度差というか空気の読めなさというかスノッブな雰囲気を 感じるのでもっと考えて仲良くしてほしい。オプソは連携が要だから。 あと、流行るまでは商売の匂いは消す努力をしたほうが・・・。 その辺はユーザー会以外に別のFirebirdコミュニティが立ち上がって しまうと手遅れだから、その前になんとかしてほしいとせつに願う。
日本語インストーラなどの開発もやり始めたし、多少はまともに 活動始めたと少し評価しているところかな。>ユーザー会
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として計算させたいのです。
ibどころかfb初心者だからうまい方法は知らないけどそのまま安易に a.data - case when b.data is null then 0 else b.data end は使えないのかな
nvlって無かったっけ?
>>403 COALESCE
ソースはfirebird nullでググれば出てくるよ
俺の記憶によると
>>405-406 のアドバイスはIB4.2には
無効じゃないかと思った。素直にストアドじゃないかな。
>>404-408 どうもありがとうございます。
caseとかnvlとかCOALESCEはIB4.2には無いのでできませんでした。
408さんのUDFを試してみることにします。
>>409 WHERE (A.DATA - B.DATA) > 100 OR (A.DATA > 100 AND B.DATA IS NULL)
でも可
そもそも計算に使用する項目はnot nullであるべきだと思うのだけど。
411 :
407 :2007/04/12(木) 01:08:27 ID:???
>>408 いやUDFも互換性の問題あってIB4でうまくいくかどうかわからんから
ストアド書いて、中でIF文で分岐してSUSPENDすればいいんでない
って思ったんだ。
412 :
408 :2007/04/12(木) 09:06:39 ID:???
おー、そういうやりかたもあるね〜。 うっかりしてた。スマソ。
414 :
NAME IS NULL :2007/04/16(月) 12:50:36 ID:TFgXspdw
Firebird2.0SuperServerを業務で使用したいと考えています。 「同時接続ユーザー数」に関して、具体的な数値として把握したく、 ご教授いただけませんでしょうか。 または、資料のあるHPを教えていただけませんか? なおサーバーOSはWindowsServer2003です。 ユーザー数はOSのクライアントライセンスは今回は除外し、DBのみです。 よろしくお願いします。
Firebirdで3つ上のレスを検索する方法は無いのでしょうか
レスって?
419 :
414 :2007/04/17(火) 08:53:40 ID:???
>>416 記事中に「FireBird」だの「Firbird」だのという記述があちこちにあるなあ。
記者の名前に反して信頼できない記事だ :-)
>記者の名前に反して ワロ
IB4.2で作成したDBファイルをFB1.0でcreate table, alter table等の修正を加えてデータを追加し またIB4.2環境に戻したところ、修正を加えた部分のデータがみれない(テーブルは見えているが中身が空)のですが FBで修正をしたらIBには戻せないのでしょうか? 修正はdelphi付属のSQLエクスプローラ+BDE5.01で行いIB環境はIB4.2+BDE4..0です。
IBで同じ構造のテーブル作ってBatchMoveでGoだ
手元にIB5.6以降しか無いので検証できないけど、 FB1.0.3はIB6.01互換って事になってるから 仮に、同じIB同士だとしても4.2と6.0ぐらい離れていたら そういう現象が起きてもおかしくない気がする。
426 :
NAME IS NULL :2007/04/18(水) 18:35:37 ID:9dJ+PvZg
Windows Vista のコントロールパネルでエラーがどうこうっていうの、 どうやったら発生させることが出来ますか? やっとVi$ta入手したので、FB1.5で発生するか見てみます。 FB1.5も複数バージョンあったり、FB2.0にすれば回避できるのかとか、 調べることいっぱいですね。 まとめサイトとかあれば。。。
>>424 そうします。
>>425 そうですか、FBはIB互換だから大丈夫かなと思っていたのですが
今後は気をつけないといけないな…
ありがとうございました。
遅レスだが、gdbそのものはいったん新しいバージョンで開いたら 古いバージョンでは開けなくなる。これはIBとFBをまたがってる からという問題じゃなくて、IB同士やFB同士でも同じ。 FB1.0でバックアップ、IB4.2でリストアすればいけるハズ。
>>426 vistaでFB1.5を普通にインストールするとコンパネが開けなくなります。
インストーラでコンパネに追加のチェックを外すだけで回避できます。
430 :
426 :2007/04/19(木) 10:58:05 ID:???
サンクス
>>429 今ちょうどやってたところでしたが、その通りでした><
FB2.0にすれば良いのかなぁ。
FBでクライアント何台くらいまで実用的に使える? お前らの手がけたシステムで最高何台?
>>430 ユーザー会が配布している日本語版インストーラの1.5.4ならOKだよ
433 :
430 :2007/04/19(木) 17:34:51 ID:???
サンクス
>>432 英語も必要なんでFB2.0にします。
ところで、FBに限らず古いアプリでコントロールパネルにインストロールするアプリは結構エラー出てないですか?
ノー●●先生とか。
FBみたくアンインスコメニューが無い場合、コンパネが開けないからアンインスコできないんですが、どうしたら良いんでしょう?
434 :
433 :2007/04/19(木) 18:37:08 ID:???
ごめんなさい、勘違いでした。 ノー●●先生は悪くありませんでした。 やっぱ、FBのコンパネ操作がエラー起こすわ。
>>431 うちはコネクションの数でいうと40〜50くらい。Linux-SS。
そのうち20くらいはコネクションプールで待機中。
10くらいはC/Sで接続したまま何もしてない。
残りの10〜20くらいがトランザクションを実行中。
DBのサイズは2G弱。
へえ、そんなに使われてるんだ 僕は以前、どのDB使うか検討したときに ユーザ会のHPしょぼいんでFirebird使うのやめたけどw こっちにすればよかったかな、開発はDelphiだったし
IBから結構乗り換えてるじゃないかな? IBは商用のデータベースとしては古いし安かったから、米国でも中小企業では結構使われ てたみたいだよ
IBといえばロシアだろ常考・・・ って認識は古いのか?
>IBといえばロシアだろ常考・・・ kwsk
Delphiと言えばロシアだからな、IBが幅を利かせるのは必然だわな
>Delphiと言えばロシアだからな いや、その通りだけど、日本だって、うわさでは中国だってDelphiだお。 シェアがどうこうじゃなくて、多く使われてるよ。
ブラジルもDelphiだよ。まだまだ粘る。
大阪民国だってDelphiだぜ
DELPHI関連でぐぐってるとロシア、中国、英語ではない何かばかり引っかかるんだよな。
英語圏では別の愛称があるから当然じゃん
447 :
NAME IS NULL :2007/04/24(火) 09:34:59 ID:/YVJSirh
391-393でマルチコアとかマルチCPUの話があったけど2.0は未対応? 資料を探してるんだけど見当たらないorz
>英語圏では別の愛称 kwsk
>>447 リリースノートに思いっきり書いてあると思うが…
Classicは対応、Superserverは未対応
>449 いまいち見つからない・・・スマソ 2.0.0リリースノートの10/151ページの「64-bit Support」なのかな?
>>450 すまん、Quick Start Guide の4ページ目
452 :
NAME IS NULL :2007/04/24(火) 11:44:55 ID:2lVze+Pb
>Classicは対応、Superserverは未対応 これって、SuperserverはIntel Dual Coreに未対応ってことですか?????
●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 :2007/04/24(火) 14:47:52 ID:???
>OSがCPUの間でプロセスを変えて、パフォーマンスが劇的に落ちることさえできること。 つまり、マルチプロセッサで異常終了したりデータを壊したりといったことじゃなくて、 パフォーマンスが落ちるってことね。 ちょっと安心しました。
クラッシックサーバの場合は、1コネクト1プロセスでメモリ空間も別になるから OSがデュアルコアでの複数プロセス同時実行をサポートしてるかどうかになる のではないかな? スレッドレベルまでの対応だと駄目だよね。
ちょっと教えて下さい。 CpuAffinityMaskはいくつに設定したら良いですか? wikiには1番目のCPUのみ使用するなら"1"を設定します。 1番目と2番目ならば"3" って書いてるけど、SMP非対応だからデュアルCPUでも結局1つ分しか 使えないんですよね。 "1"でも"3"でもFirebirdの速度は変わらないけど、"3"にしておいた方が 他のプロセスの邪魔になりにくいって事なのでしょうか?
1にしといてください。
XMLデータを格納するときはどのデータ型が良い? VARCHARだと長さ指定しないといけないから向かない気もするけど BLOBとかかな?
BLOBしかないでしょう。 ただオープンソースデータベースはXML関連の処理には向きません。
460 :
456 :2007/04/25(水) 23:17:20 ID:???
>>457 サンクス。
SMP対応になるまでは1にしときます。
>459 thx プログラムの設定をシリアライズしてDBに取っておきたいだけなんだけど何かやり方考えるか・・・ 一定の長さでぶった切って保存するだけならそんな難しく無いだろうけどね
XMLじゃないけど、扱うサイズに大きなムラがあるデータは、DBにはファイル名を格納して 内容はファイルで別格納しちゃうとかいうのもわりとやられてるよね
>462 XMLと言いつつ実態はテキストファイル保存したいだけだからそれで良いのかも ただ、個人的にはバイナリもDBに登録したい気もする 画像ファイルとかをDB入れない?って言ったら上の人間に 「やったこと無いからNG」 って却下されたw あんまりBLOBって使わないほうが良いのかね?
>>463 >「やったこと無いからNG」
そんな考えの会社は発展しないだろうね。
>464 まぁ自分の会社じゃないから良いけどw LOBとファイル共有&パス保存はどっちが扱いやすいのかは気になる所
64KB以下のサムネイル程度の画像なら BLOBでもいいんじゃないの。 やってみたことないし、サイズの根拠もないけど。
BLOBの最大のネックは、 ・標準SQLの範疇におさまらず、DBライブラリを結構意識する ・ODBCドライバにバイナリサイズが規定されておらず途中で無言でちょん切るODBCドライバが存在 ってことかなぁ。 でも、RDBにバイナリを入れる技術は持っといてもおk。
>466,467 thx 業務のほうはやり方を少し考えてみるとして、BLOBはちょっと試しておいてみよう
大きな画像だと圧縮ライブラリの使用とか考えないといけないしファイル共有の方がいいのかな。
ただファイル管理を考えないといけなくなるけどな。
>>466 その数字はひょっとしてメモ型の制限から?メモ型もBLOBのサブタイプだったし。
ファイルで保存すればいい物をDBに突っ込むのにメリットは感じないなあ。 結局テンポラリファイルとして吐きだした後でクライアントに渡すのなら本末転倒だし 直接クライアントにデータを送る場合でもストリーミングやバイトサービングのような 配送機構が使えない場合もある。 そもそもファイルを扱うのはファイルシステムに任せるのが最も効率がいい。 また、Firebirdのように一つのデータベースを複数のファイルに分割できないDBMSでBLOBを 使うのは拡張性を考慮すると避けたい。
分割できるけど、それとは別の話なのかな? 関係ないけど、DBのBLOBってInterBaseが発祥なんじゃなかったっけ。 大昔読んだIB関係のドキュメントでそんなのがあった記憶がある
472 :
NAME IS NULL :2007/04/28(土) 22:20:00 ID:p8udZbFt
最近ファイル管理が面倒になってきたので、自宅鯖でDB導入しようとしています。 Firebirdが気になっているんですが、これって以下のスペックで何とか動きますか? たまーにCGI(sh-script)からキー+順序指定で参照が来る位です。joinなし。レコード数も100件程度。 今後も同様の構造で〜10000件程度のテーブルがいくつか増える程度。 CPU: PentiumPro 200MHz Mem: 384MB (64MBx6) OS: FreeBSD 4.10-STABLE つーか、Firebird2 のビルドが gpre_static 作るとこでコケてる原因も調べなきゃあかんが…。
キャッシュの量を調整すれば大丈夫では? コンパクトなのも特徴のひとつだし
>そもそもファイルを扱うのはファイルシステムに任せるのが最も効率がいい。 これは間違いだな。 Windowsでもファイル数が1万になるとエクスプローラーもまともに動かなくなる。 バックアップもままならない漢字。 というか、1ファイルを1ファイルとしてファイルシステムに任せるんならRDBの存在が消滅。
>>474 > Windowsでもファイル数が1万になるとエクスプローラーもまともに動かなくなる。
そりゃファイルシステムじゃなくてシェルの実装方法の問題でしょうが…
>そりゃファイルシステムじゃなくてシェルの実装方法の問題でしょうが… 違うだろ、エクスプローラーを使えるかどうかで運用できるかできないかが関わってくるだろ。
言ってる意味がさっぱりわからん…orz
477=バカで想像力貧困
475はシェルの実装というかWinのエクスプローラの作りがタコと言いたいのでは 476はそれを読み取れず運用うんぬん言ってるから噛み合ってない気がする それともWinのファイルシステム=エクスプローラだと思ってるのか・・・ とりあえず476の方がバカで想像力貧困だとおもふ
>475はシェルの実装というかWinのエクスプローラの作りがタコと言いたいのでは >476はそれを読み取れず運用うんぬん言ってるから噛み合ってない気がする 残念、間違いです。 エクスプローラーの作りがタコってことはどーでもいー問題。 しかし、エクスプローラーが動かなければ運用上困るという問題。 問題意識が無い477はふよー。
>480 スレ違い
>>480 > エクスプローラーが動かなければ運用上困るという問題。
Explorerが動かないというのが具体的に何を指すのか、またそれで運用上困るというのが
どういう事例なのか、その辺りがまったく想像が付かない
で、そこでなぜ
> 1ファイルを1ファイルとしてファイルシステムに任せるんならRDBの存在が消滅。
と、RDBMSの存在意義へと繋がっていくのか、何もかもがさっぱり意味不明。
>>482 ごめん、自分で考えて。
その内容の詳細は企業秘密だから。
>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は枝分岐しちゃったんですか?
2.1はまだ正式リリースではないのでは?
1.0と1.5、2.0が枝分岐したように、2.1も分岐するの?
2.1と2.0はコア部分の変更はないので、分岐しないと思います。
>>476 実装方法といっても、Win32でファイルの一覧取得して破綻するようじゃ、しかたねぇべ。
まちがえた。
>>475 実装方法といっても、Win32 APIでファイルの一覧取得して破綻するようじゃ、しかたねぇべ。
いくらWinとはいえ常識的に1万ファイル程度でこけるわきゃないと思うが・・・ とりあえずXPで試してみたけどエクスプーロラもプログラムからファイル一覧の取得も普通に動く そして板違い
>>474 ハードディスクにおそらく100万ファイル程あるけど
Explorer使っても特に問題ない。
ファイル数に関係なくXPのバグ?でたまにおかしなときがあるけど。
>>492 それをエクスプローラーでコピー&ペーストしてみ
>ハードディスクにおそらく100万ファイル程あるけど これは全く事態が違う。 1フォルダを参照したところ、その下に1万フォルダ(か1万ファイル)あると、動きが止まる。
>1フォルダを参照したところ、その下に1万フォルダ もの分かりの悪い人が居るのでもっとハッキリ書くけど、直下に1万ファイルある場合ね。 例えば、1日に40ファイル登録すると1年(250日として)で1万ファイル。
>>490 > Win32 APIでファイルの一覧取得して破綻する
ウソ付け、どんなやり方してるんだよ。
ちょうど一万ファイルあるフォルダに対してdirコマンド叩いてもなんの問題もない。
Explorer使う代わりに自前でインターフェイス作ればいい話だろ。
RDBMSなどまったく何の関係もない。
人間に手動でエクスプローラを使って1万ファイルをコピペさせるってどんなシステムだ… 運用方法がそもそも腐ってる
話がBLOBからどんどんそれていくな・・w
ファイルに格納する時の命名規則とかちょっと大変そうだな。 時系列分割して別フォルダに保存とかした方が良さそうかな。 アップローダーとかどうしてるんだろ? こういう場合の運用方法を考えとくのもDA、DBAとしては必要だからあながちそれてはいないか。
ジェネレータがあるから、それを上手く使えば非常に面倒というほどではないのではないかと
>ジェネレータがあるから、それを上手く使えば 非常に面倒だ罠
リストアで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」 サイズの指定がおかしいのかな?それともファイル名?
サイズ指定が省略できるのは1番最後のファイルだけでは? wikiのリファレンス見る限りでは。
あっと、勘違いでした。 最初のはソースの指定か。
>>502 リストア時のサイズ指定はページ数じゃないかな。
gbak -c -p 4096 "c:\test.fbk" "c:\test1.fdb" 768 "c:\test2.fdb"
ではどう?
506 :
502 :2007/05/08(火) 08:51:14 ID:???
>>505 ほんとだ・・・ちゃんと3M(4096byte*768page)でできた・・・(n’∀’)n
IBOConsoleのリストアもpagesって指定になってますね
ありがとうございました。
WinXPのエンベデッドからCHARACTER SET指定でcreate database実行したら 「attach or create database CHARACTER SET SJIS_0208 is not defined」 って言われたんだけど何か設定するか入れないといけない?
NONE っていうのはあるお。
509 :
507 :2007/05/09(水) 11:00:01 ID:???
SJIS指定したい場合は何かやんなきゃだめ?
510 :
507 :2007/05/09(水) 17:14:34 ID:???
サービス上げてisqlからならちゃんと発行できるのだが・・・ 組み込みの場合は何か手順があるのかな
>>507 「WinXPのエンベッド」ってWinXP Embeddedから?
それともWinXPでFirebirdのEmbedded Serverを使うの? どっち?
512 :
507 :2007/05/10(木) 09:03:08 ID:???
>511 FirebirdのEmbedded
513 :
507 :2007/05/10(木) 14:57:07 ID:???
自己解決、intlフォルダをコピー忘れてたとか言うつまらないオチでした
DBの容量見積もり式ってどっかある?
できないというのが定説。
ORACLEみたいに最初に確保するタイプじゃないからな。 容量計算不要というか出来るだけ余裕のあるドライブにマップしとく、じゃないか?
データ件数が結構多いみたいだからどれくらいになるか見たかったけど無理でつか 実際にデータ突っ込んでみた実績で測るしかないか
そですね。insert時はアル程度予測可能か。 更新時や削除時は無理っぽい。
スイープで自動的に未使用域は回収されるから二割増ぐらいで考えてればいいと思うよ。
質問なんですがストアドの中でトランザクションって切れないんでしょうか? WikiのSQLリファレンス見る限りCOMMITとかはPSQLが書いてないんですが・・・ よろしくお願いします
2.1aのmergeがまともにうごかねーぞ
α版のソフトに文句いってもね....
>521 なるほど、ありがとうございます
先週turbo delphiを購入し、付属のInterBase7.5もインストールしました。 Oracle等の経験それなりにはありますが、InterBaseはど素人です。 で、困ってるんですが・・・ ローカルサーバとしていじってるときはうまくいっていたのですが、 本来の目的であるリモートサーバを登録しようとして、IBConsoleで色々 やってみたんですが、「対象のコンピュータによって拒否されたため、接 続できませんでした。」というエラーになってしまいます。 付属のPDFドキュメントを読んでその通りにやってるんですが・・・ 接続設定の診断ツールのTCP/IPタブでみると、Pingは成功しますが、 gds_db(3050)とspecify port-3050は、「socketエラー10060接続が拒否 されました」となってしまいます。 どういうことでしょうか? ポートの使用可否の設定みたいなものがある んでしょうか。ちなみにOSはwin2000serverです。 誰か助けてください。
つ[Windowsファイアウォール]
527 :
525 :2007/05/21(月) 20:03:35 ID:???
>>526 帰宅してしまって自宅からのレスなので、Windowsファイアウォールを
使う環境がありません。、明日確認してみます。
レスありがとうございます。
クライアントがXPでサーバが2000かな? もしWindowsファイアウォールでなければ サーバのservicesに3050が書かれてないとか。
529 :
525 :2007/05/22(火) 10:13:54 ID:???
Windowsファイアウォールって、LANのプロパティにある「TCP/IPフィルタリング」のことでいいですか?
”すべて許可する”になってます。
「IPセキュリティ」のほうは”IPSECを使わない”に設定されてます。
>>528 >サーバのservicesに3050が書かれてない
とはどういうことでしょうか?
サービスにはInterBase 7.5 gds_db Server、InterBase 7.5 (gds_db) Guardianがあります。
どちらも、サービスを開始しようとするとエラーになってしまいます。
わけわかりませんw
ヒント:TCP/IPのポートを空ける
531 :
525 :2007/05/22(火) 11:39:02 ID:???
C:\WINDOWS\system32\drivers\etcのservicesファイルに3050を追加かな? Win2kだとWINNTフォルダか うちはこんなのが追加されてました gds_db 3050/tcp #Borland InterBase Server
533 :
525 :2007/05/22(火) 12:07:15 ID:???
>>532 確認したらうちも同じものが追加されてました。
でも動かない。 泣けてくる〜
netstat -a でlistenしてるか確認 してるならどこかでブロックされている かな?
サーバからサーバ(自分自身)にリモート接続ってできてるのかな?
536 :
525 :2007/05/22(火) 12:35:55 ID:???
>>534 netstat -aに3050はでてきませんでした。
>>535 だめなんですか?
InterBaseのインストール時にサーバとクライアントを両方入れますよね?
537 :
535 :2007/05/22(火) 12:54:16 ID:???
できていない?
538 :
525 :2007/05/22(火) 13:23:09 ID:???
できてません。
>>529 > どちらも、サービスを開始しようとするとエラーになってしまいます。
つーことは繋がらないんじゃなくてそもそもサーバーが起動してないんじゃないの?
540 :
525 :2007/05/22(火) 14:51:01 ID:???
自分にリモート接続できないのならFWとかのネットワーク絡みじゃない感じがする InterBaseは使ったこと無いから分からんけどサービスがちゃんと上がってないんじゃまいか イベントログとか何も出てないのかな
542 :
525 :2007/05/22(火) 17:14:03 ID:???
リモートサーバの登録でサーバ名をlocalhostにすると動く。 つまりどういうこと?わけわからん。 Windows+inteBaseのよい解説書があったら教えてください。 amazonだとlinuxとかkylixの本しかヒットしない。 日本語のわかりやすいサイトでもいいですが。 もうお手上げっす。
そこで、InterbaseからFirebirdにリプレイスだ
IPを直で打ち込んだら通ったり・・・しないよね
インストしたのがlocal InterBaseだったとか、クライアントのライセンスが無いとかじゃないよね?
(Turbo Delphi に)同梱されているデータベース InterBase 7.5.1 Developer Edition ― ユーザー数最大20 名、論理的なローカル接続数最大80まで ↑ ローカルでしか使えないんじゃねえの? 所詮おまけソフトなんだし。
InterBase 2007 Developer Editionでも使ってみたら?
何このアホな展開
1.5系で、ある程度のトランザクション数(かなり大きな数だったと思うけど)に達すると データベースが壊れるみたいなことをどこかで見た記憶があるんだけど、詳しく 解説してあるところ知りませんか?
トランザクション数というより、ポスグレとかと一緒で、トランザクションIDの枯渇のことでわ?
それって割と特別な状況なんでしょうか。 トランザクション作るたびにID更新されたりしたら、 いつかは壊れるときが来ると思うんですが。
>>551 一度バックアップ&リストアするとリセットされる。
うちの場合は盆と正月にメンテで必ずリストアし直すんだけど
トランザクションID的にはそんなことしなくても全然余裕。
枯渇する環境はかなり特殊かと。
>>551 たしかIntegerの最大値だから21億くらいで枯渇。
普通のクラサバシステムなら十分な期間運用できると思うよ。
へ〜、そうなんだ。と思い試してみた。 >gstat -H mydb.fdb で表示される、Next transactionが次回トランザクションIDなんだよね? isqlの中だとshow databaseでも同じ値が確認できるな。 >gfix -sweep mydb.fdb で強制スイープ掛けてもリセットされなかったが >gbak -r backup.fbk mydb.fdb では確かに低い値に戻った。 で、問題はコマンド投入タイミングの取得なんだが、トランザクションIDは 残念ながらシステムテーブルでは取得出来ないみたいだ。 プログラム的にはisc_database_info関数を使用する必要あり?
えーっ、スイープで戻らないんですか? 確かある回数のトランザクションに達すると自動スイープがあったと 思ったけど、それでリセットされるかと期待したんですけど…。 なんかMLでは1.5.4でも直ってないという情報もあった記憶が。
コネクションがあってトランザクションが進行中でも スイープしたりバックアップが取れたりするのがFB&IB の特徴だから途中でIDが変わってしまってはマズイというのは理解できる。 何しろ戦場でも使える管理不要DBが売りだからな。 値が循環してくれてれば良かったのだが。21億前のトランザクションが残っているとも思えないし。 でも超人気サイトのバックエンドDBでも無い限りまずはそうそうあり得ないか。 そういう所ではORACLEだろうし。
21臆を越えたあたりでメッセージを表示するようにしておけばいいのさ そしたらgbak
まぁトランザクション回数に制限があるから不安はあるね。 バックアップリストアしないとリセットできないから 24時間常時アクセスのシステムでは使わない方が無難。
やっぱり年次や月次の定型処理でやっててもよさそうな。
夜とかシステムを止められる時間があるならやった方が良いよね。 でもスクリプトやプログラムで自動化するのは少し怖いな…。
>21臆を越えたあたりで 何の数?
トランザクションの数
>>1 からとは言わないが、十数レスほどさかのぼって読んでみてはいかがかな。
なんかFBもだんだん使いにくくなってる気がするのは俺だけかな。 2.0系からはIBOConsoleで接続するとなんか動作怪しいし(すぐ切れる)。 もうIBXは使えないのかな?gpreはDelphiじゃ使えたもんじゃないし、 困ったのう。
>もうIBXは使えないのかな? 動作はしてるお? でもVi$ta64bitとか考えるとガクブル。 >gpreはDelphiじゃ使えたもんじゃないし、 これって何だっけ?
埋め込みSQLをAPIコールに展開してくれるプリプロセッサじゃないか? ORACLEのPRO*CやPRO*COBOLみたいな奴。
>>564 SJIS0208で機種依存文字が使えないのが一番辛いな。
その問題が直るまでは1.5.4で様子見です。
IBOConsoleはいろいろと怪しい部分ある気がするよ。
IBOConsoleってFB2.0に対応してるの? されてないからFlameRobin日本語バージョン作ったんじゃない?
>>568 されていないと思うよ。うちの環境でも問題起きるし。
FlameRobinに移行した方が安心だよ。
IBExpertじゃダメなの?
とうぜんOK>>IBExpert
IBXに変わるDelphiのコンポーネントって何がいいのかな。 フリーで良いのないかな。
FirebirdでAccessのクロスクエリ的なSQLって発行できないですかね? 分析で使えると便利なんだけど検索しても出てこないし標準じゃ無いのかな・・・
>>575 Accessでいうクロス集計クエリの構文(TRANSFORM...)はFirebirdにはないですね。
>576 thx 自分で処理組むか・・・
うpしてね
579 :
92 :2007/06/22(金) 09:09:55 ID:???
C#で良ければ・・・
他スレの名前が残ってて鬱だ ○rz=3
//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(); } }
だめだうごかね
>>584 OS分からないし、ベンチ用DBのテーブル構成も分からないし、測定方法も分からないし
「シングルコネクションならFirebird」って結論書いてるけど、記事の中は負荷テストの
結果については何も書いてないし。
肝心な部分は何もかも分からない記事だなこれ。
どこかにちゃんとしたソースはないのか?
Firebird is no1
>>585 OSはDebianだったよ。そのうちに、OSC.DBのポータルに資料があがるって。
すいません初心者質問させてください。 IBXでFirebirdって使えないんですか?
使えますよ
590 :
588 :2007/06/30(土) 15:55:47 ID:???
FB2.0でも使えますか?
592 :
588 :2007/07/04(水) 06:16:51 ID:???
>>589 ,591
回答ありがとうございました。
上の書き込みをざっと読んで、IBXじゃなく他のFB用Delphiコンポを
使ってらっしゃる方が多そうだったので心配になってました。
593 :
NAME IS NULL :2007/07/17(火) 11:36:26 ID: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 :2007/07/17(火) 11:37:29 ID:Jrlc20X+
修正 ×key size too big for index カラム名 ○key size too big for index 主キー名
長いパス名がダメなら、短いパス名を使うとか 相対パスとか、フォルダと名前を分けるとかできそうなもんだが。 そもそもファイルは削除される可能性があるのにキーにする意味あるのか?
596 :
NAME IS NULL :2007/07/17(火) 13:01:01 ID:Jrlc20X+
>>595 ファイル名とタグ情報で一意のキーにしているテーブルなんです。
ファイルのタグ情報管理用のテーブルなんです
本来は
KeyNo(Int) とファイル名
KeyNo(Int) とタグ名
で分けるべきだったんでしょうが複数テーブルへの書き込みやJoinが発生することを嫌ってこうしてしまっていたんです。
ショートファイル名がVistaとかでどう解釈されるかなどを調べるのも微妙なので
テーブル構造を見直す方向でやってみようかなと・・・・
>書き込みやJoinが発生することを嫌ってこうしてしまっていたんです ・・・・
設計ミスが明らか
>>593 Firebird2以降でできないっけ?
大きいページサイズを指定して。
>>593 VARCHAR(250)
でうまくいかないのでしょうか?
うろ覚えですが、255文字になるとblob扱いになるとかなんとか・・・
603 :
593 :2007/07/18(水) 20:50:34 ID:VQDiTlZO
レスしてくださった方々ありがとうございます 基本的にネット環境がないので遅いレスですが失礼します 環境が2.0にできるのであれば問題がなさそうな感じですが安定板とか言って1.5系の最終1.53(?) を使用することになっています。 もともとの設計がおかしいことはわかっていたのですが手間とか考えるのと焦っていたので糞設計してしまっていました VARCHARのサイズ調整とページファイル調整でどうにかなるかもしれなさそうなので 設計修正は後回しにして少し試してみたいと思います もし200程度で行けるのであれば、ファイルパスを格納するので問題がなさそうです。 (これなら 確かWindowsが150文字くらいからパス長すぎのエラーが出る場合もあるようですし PG側から深い階層にしないように警告する方向でいけるんじゃないかと)
.netとかからFirebirdのユーザ追加したりパスワード変更したりする方法とかってあるますか?
C#とかなら、プログラム内からコマンドライン用のプログラムを起動すればいいんじゃないの?
606 :
NAME IS NULL :2007/07/26(木) 12:08:17 ID:udSwBcUt
.net用のデータプロバイダの中のServerとかあたりの名前空間の中の機能じゃできないんだろうか
>605,606 探してみたらなんとかできました。 ありがd 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 :2007/07/26(木) 15:35:45 ID:udSwBcUt
>>607 お、いけるんだなw
ちょっとやってみて調べたら情報うpしてくれww
609 :
NAME IS NULL :2007/07/31(火) 14:49:59 ID:9ImXiTwS
Windows版で、FB2.0サーバーと、クライアントのDLLにFB1.5、DBファイルは1.5や2.0とバージョン混在させても動作しますか?
610 :
NAME IS NULL :2007/07/31(火) 17:05:57 ID: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が間違っているんでしょうか?
でーたそーすを「localhost」に
612 :
NAME IS NULL :2007/07/31(火) 20:49:21 ID:NYEBxcjn
>>611 レスありがとうございます!!
接続ができました!!!
613 :
611 :2007/07/31(火) 20:57:04 ID:NYEBxcjn
あつかましついでに質問なのですが テーブル作成するときにデフォルト値を設定するときDEFAULT が使えないような気がするのですが・・・ 何か他のキーワードなのでしょうか?
>>613 使える。
ただしNOT NULLじゃないと自動的には入らない。・・・ってことでは?
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に置き換えるヨロシ
609もヨロ!
>616 自分のマシンで試して見たほうが早いと思う
618 :
609 :2007/08/02(木) 15:00:23 ID:???
何度か行って、何かフリーズしたことが2、3回あったような。 でも、インスコしなおしたらすぐ直ったり、確実に発生しないし発生したような気がするし、苦手な状況です。
両Verの鯖を同時に上げなければ大丈夫だったりする? 何かOSのリソースか何かをつかんでてfirebird.confか何かをいじる必要があった希ガス
クライアントDLLは別に問題ないと思うけど、 2.0サーバで1.5のDBファイルは使えないよ。(ODSバージョンが違うから) 一旦1.5サーバでバックアップとって、2.0サーバでリストアすればOKだけど、 リストアでエラーになる場合もあるから注意。
>2.0サーバで1.5のDBファイルは使えないよ。(ODSバージョンが違うから) ちょ、マジですか? 動作しているように見えるのは気のせい?
622 :
609 :2007/08/03(金) 09:37:56 ID:tbJGoSpZ
> 2.0サーバで1.5のDBファイルは使えないよ。(ODSバージョンが違うから) この内容ショッキングなんですが、間違って使用するとどうなりますか? もしDBが壊れるのであれば、アプリからDBファイルのODSバージョンを確認したりできますか?
623 :
620 :2007/08/03(金) 11:27:17 ID:???
624 :
609 :2007/08/03(金) 11:37:03 ID:???
レスサンクス
>>623 朝から涙目でググってました。
ググっても日本ユーザー会と掲示板とFB Wikiくらいしか見つかりませんでしたが。
ちょうど自分もgstatコマンド打ってたとこでした。(で、パスが通ってなくて、コマンドエラーorz)
自分が使うんじゃなくて営業マンとかが使う事になるのでGUIじゃないとキビシー。
ツール作るかなぁ。
FB1.5ファイルからFB2.0ファイルにコンバートするGUIツールがあれば完璧なんですが。。。
625 :
609 :2007/08/03(金) 11:40:02 ID:???
626 :
614 :2007/08/03(金) 11:42:01 ID:???
>>615 いや、それは知ってるんだが、
>>613 が「DEFAULTが使えない」って
言ってるってことは、「NULLが入」るって意味だと理解したんだ。で、
insert into hoge_table (hoge1,hoge2) values(1,NULL);
を暗黙で実行するようなGUIツールか何かを使っているのでは?
と思ったんだ。ならばNOT NULLをつければ解決だろうと。
627 :
609 :2007/08/03(金) 11:58:47 ID:???
連続投稿ですみません(気が動転してます)
以下のように自分は理解しました。(問題ありそうなところや関連情報がありましたらレス下さいm(__)m)
>
ttp://firebird.skr.jp/wiki/CONNECT >データベースへの接続時には次のことが行われます。
>1. ヘッダページ部分のベリファイ
>2. 既存データベースの存在チェック
>3. バージョンチェック。オンディスクストラクチャ(ODS)には
> データベースのバージョン番号があるので、
> データベースエンジンが扱えるバージョンであるかチェックします
> 異常があった場合、データベースエンジンはエラーを返します。
ということで、旧DBファイルでも接続できた時点で一応は使えてDB破壊は無いのでは、と思いました。
CONNECTですが、自分の場合は、BCB6-IBX-FB、という接続にしています。
>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>
PHP5からfirebird使うにあたって、ネイティブ以外で一番適したライブラリって 何でしょうか? 全体的にはMDB2とかPDOあたりが主流みたいですが、firebirdでも問題なく 使えるでしょうか?
630 :
NAME IS NULL :2007/08/03(金) 17:09:07 ID:tbJGoSpZ
FB1.5サーバーにFB2.0のクライアント(fbclient.dll)を組み合わせても動作しますか?
>>630 クライアントは基本的に後方互換ありだから
「サーバのバージョン < クライアントのバージョン」
は問題ないよ
632 :
630 :2007/08/06(月) 09:20:19 ID:???
サンクス
>>631 みんな互換性詳しいですね。
自分もFBのppt文書とかPDF読んでるけど、そこまで見つけれないお。
633 :
NAME IS NULL :2007/08/14(火) 13:40:31 ID:wKocF6BY
>>629 多分将来的に他のRDBMSに乗せ換え利くようにだろうけど。
PDOは最初にフェッチしたレコードの全てのフィールドにNullが入っているバグが放置されているな。
dsnの接続文字列も説明と違って難儀した。誰も使ってないんじゃないか?って思う。
FB関数の方が枯れてて無難のように思える。
ラッパークラス作っていつでも差し替え出来るようにしとけばいいかもね。
Firebird 2.0ってフィールド名とかに日本語は使用できないんでしょうか?
636 :
NAME IS NULL :2007/08/15(水) 03:51:20 ID:+G474/JV
>>635 ダブルクォートで囲むとできると思う。
できるのは確認したけで本番で使ったことないから、どっかで行き詰まるかも
UTF8ならまず大丈夫だとは思う
OracleやSQL Serverでも日本語オブジェクト名使えても英数字しか使わない人いるからなあ。 使わなければそれに越した事は無いんだが。
DBってアプリの中の人なんだから日本語である必要は無い。
テーブルを英数で定義して、列を日本語化したビューを作るのが良いかも
下手に日本語使えたりすると変な文字使ってくれる人いるからなあ。 機種依存文字の○数字(1)とか。 英数字名で作っても某系ツールはデータディクショナリで翻訳してくれるから便利。
642 :
635 :2007/08/17(金) 02:49:33 ID:???
ありがとうございます、無事実行できました。
643 :
629 :2007/08/17(金) 15:22:09 ID:???
>>633 >>634 フレームワークやPEARを使おうとすると、ネイティブではダメなんですよね。
PDOもバグバグみたいですね。なんだかなあ…。
PHPのDB接続ライブラリ界隈も、いつぞやのMicrosoftのDB操作コンポの様で
どこへ行こうとして、何を標準に持ってくるつもりなのか、さっぱり分かりません。
フィールド名に日本語を使うと、プログラム書くとき非常に面倒くさいと感じるのは俺だけ?
>>644 あるなあ。
ただ英数字ローマ字で変な略称された時も困る。
プロジェクト内命名規則辞書などがまとめられていればいいのだが。
世の中に気の利くPMは少ない。
はいはい、昔の○racleで日本語項目名使われて痛い目に遭った俺が通りますよっと 一見動くことは動くんだけど、oo4oとADO経由すると死ぬというステキなシロモノでした〜 どうしたかって? テーブル項目全部作り直して片っ端からSQL書き直し♪ プロジェクトが1ヶ月分くらいダメージくらいましたよorz
やっぱ外人さんはマルチバイトでテストなんかせえへんもんね。
FirebirdはMySQLみたく、カンマで区切って複数行INSERTできないのでしょうか? 色々と試しているのですがエラーが出てしまいます・・・。
; (セミコロン) じゃね?
出来るかどうかはツールによるんじゃね? FlameRobinで試したら出来たよ。
class Program { static void Main(string[] args) { FbConnectionStringBuilder csb = new FbConnectionStringBuilder(); csb.Database = @"c:\hoge.fdb"; csb.DataSource = "localhost"; csb.ServerType = FbServerType.Default; csb.UserID = "sysdba"; csb.Password = "masterkey"; using (FbConnection connection = new FbConnection(csb.ToString())) { connection.Open(); FbScript script = new FbScript(@"c:\hage.sql"); script.Parse(); FbBatchExecution batckExecution = new FbBatchExecution(connection, script); batckExecution.Execute(); } } }
これと xchg edx, [eax] これ mov ecx, [eax] mov [eax], edx mov edx, ecx どっちが早い
すれ違い
2.0.2 age
>>628 遠いレスですまんが、なんか話が食い違っているようだ。
「DEFAULTが使えない」というのが最初の質問だったから
NOT NULLつけない場合はNULLを入れることは可能なわけで、
その場合は
insert into hoge_table (hoge1,hoge2) values(1,null);
とやっているならnullのかわりにデフォルト値が入って
くれたりはしないよ、っていう当たり前のことを言ってる
だけなんだけど。
DelphiのTTableみたいなコンポのAppendメソッドでレコード
追加すると、たしか値を入れないと明示的にNULLを入れてくる
から上記のようなSQLが発行されてデフォルト値が入らないって
現象になると思う。そしてDDLでNOT NULLになっている場合は
デフォルト値が入ってくる。俺の記憶違いでなければ。
最近Firebird使い始めた。 ちょっと質問させてください。 FB1.5 + Delphi + IBXの環境で、列名が'CustomerID'などになっていると、 'Column unkown CUSTOMERID At line xx Column yy'を送出しました の例外が発生してしまいます。 いろいろ見て回ったのですが、どれも列名は’CUSTOMER_ID’のように、 大文字をアンダーバーでつなげたものを使用しているようです。 これがFirebirdのデフォなのでしょうか? たしかに、CUSTORMER_IDに変更すると正常に動作します。 OracleやAccessを使ってたときは、パスカル式の列名でやってたし、大文字 +アンダーバーは定数値のイメージがあるので違和感が・・・ パスカル式は不可でFAですか
んなこたーない
当然ながら「CUSTOMER_ID」にしてやってみたら動いたからそう言ってるんだよな
659 :
656 :2007/08/30(木) 12:23:28 ID:???
>>658 当然そうだよ
んで、CustomerIDをダブルクォートで囲ったらCUSTOMER_IDと同様に動いた。
そういうことみたいだ。
なんか凄い初歩的なミスの臭いがぷんぷんするw
例えばどんな?
ザ・日本語
>FB1.5 + Delphi + IBX この環境なら、 >大文字をアンダーバーでつなげたものを使用しているようです。 >これがFirebirdのデフォなのでしょうか? そうかもしれない。
>>656 フィールド名が大文字小文字混在の場合は二重引用符で囲む必要がある。
Delphi、IBXは無関係。
こんなこともできるんだシランカッタ そういえばテーブル名やフィールドを""でくくったこと無かったな CREATE TABLE Test (Test SMALLINT,"Test" SMALLINT);
>>656 つうかCREATE TABLE時に自分で"CustomerID"と二重引用符で囲ってるはずだけどなあ
それで何でSELECT時につまづくんだ?
667 :
NAME IS NULL :2007/09/03(月) 15:48:52 ID:QwBk+4Wc
2.0.2 recall age
マヂ? ソースは?
VB.NET で.netデータプロバイダ2.01を使用してデータベースをSELECT文で抽出しようとして以下のエラーが発生してしまいます。 invalid request BLR at offset 144 Implementation limit exceeded block size exceeds implementation restriction ブロックサイズの問題のようですが、カラムのVarcharサイズを小さくしてもブロックサイズが初期設定で切られてるようで解決方法が見当たりません。 何か解決方法というのはあるのでしょうか? もしご存知の方や同様の現象の方で解決した方がいらっしゃいましたら知識を貸してもらえませんか? カラム定義は以下のようになっています。 CREATE TABLE AAAA ( A_key integer NOT NULL, A_name varchar(100), A_dispno integer, A_thumbnailpath varchar(255) A_actiontype integer DEFAULT 0 NOT NULL, A_ipaddress varchar(15), A_timestamp timestamp, A_isdelete smallint DEFAULT 0 NOT NULL , CONSTRAINT AAAA_pkey PRIMARY KEY A_key );
>>670 むしろどんなSELECT文を投げたのか、そっちの方が重要
ひょっとして滅茶苦茶長くないか?
>>671 レスサンクスです
確かにそういう意味でいえばLEFT JOINを3つつなげてるSQLを投げています。
ただ、ODBCで繋いだCSEでデバッグ出力した同じSQLを投げると成功するようです。
(出力されるカラム数でいえばSELECTに30ほどのカラム名を記述しています。)
文字数でいえば全て半角英数で1514文字になります。
673 :
672 :2007/09/04(火) 16:40:49 ID:???
>>672 の文章修正です。
ただ、ODBCで繋いだCSEでデバッグ出力した同じSQLを投げると成功するようです
これは間違いでした。
同じ構造のPostgresに接続することもあるんで、間違ってそちらに接続して投げてしまっていたようです。
実際には
>>670 と同様のエラーが発生します。
>>672 とにかくSELECT文貼り付けてみてよ
可能かはしらんがViewとか使ったほうがいいんでない? 個人的にプログラムから投げるSQLはできるだけシンプルになるようにしてる SQLの問題かプログラムの問題か切り分けやすいと思うので
>>672 LEFT OUTER JOIN 3つって言っても
A LEFT OUTER JOIN B ON A.HOGE1=B.HOGE1
LEFT OUTER JOIN C ON B.HOGE2=C.HOGE2
LEFT OUTER JOIN D ON C.HOGE3=D.HOGE3
と
A LEFT OUTER JOIN B ON A.HOGE1=B.HOGE1
LEFT OUTER JOIN C ON A.HOGE2=C.HOGE2
LEFT OUTER JOIN D ON A.HOGE3=D.HOGE3
だとだいぶ違うよね。
いずれにしても一つのSQLでLEFT OUTER JOIN 連発しなければ
ならないのは設計が悪いと思うけど。効率も悪いし。
FB2.1で10Gのデータファイルが今日I/Oエラーで接続できなくなりました。 修復する方法ありませんか?
>10Gのデータファイルが今日I/Oエラーで接続できなくなりました。 イヤダネェ。 ハードの障害なんかなぁ。
WinXP+FB1.5なんですが、マシンを新調しようと思います。 SuperServerだとCore2Duoとか載せても無駄なんでしょうか? 現在、Pentium3-550MHzで重くなってきてPentium4-3.2GHzで試したら かなり快適なので、新調を考えています。
俺だったらAthlonのBEかな。 熱やら何やら考慮してね。
>>680 Core2Duo はあんまり効果ないと思う。
それより、可能なら速い HDD 載せて。
SATA でも 10000 rpm のがあるよ
てゆうか、遅いCPUのPCでDBサーバー稼動できる時代になったんだね。 自分の知ってた時代はUNIXのWSが汎用機(今ってメインフレームって言うらしいね)並みの値段だったし、 汎用機+独自DBがデフォだったような。
そんな昔と比べたら「遅いCPUのPC」なんてもう存在しないんじゃない?w
あれ?SQLLiteみたいにインスコしないでdllで動くFirebirdってなかったっけ? ちょっと思い出してみて、探し始めたけどみつかんないorz
EmbededFirebird 某のIDEで使うときはカレントディレクトリにも置いておかないと設計時にDBアクセスできないぞ
>某のIDE 興味あり。 ・某のどの言語? ・ターゲットOSは何?
delphiじゃない?
>>687 Delphi(Pascal)とC++Builder(C++)
690 :
687 :2007/09/12(水) 14:36:39 ID:???
何だちょっとガッカリ。 WindowsでEmbeded使ってるだけか。 使ってるコンパイラは自分と同じだNE!
>690 何を期待してたの?
692 :
687 :2007/09/12(水) 15:47:46 ID:???
組み込み機器でFB Embeded使えるんだー、と期待してた。 ちなみに自分が関係あるのはITRON。
エンベデッド違いというオチかw
やっぱ、ITRONでFBなんか使えないおね?
そのためのオープンソースなんじゃね?と、言ってみる
>>686 Firebirdにそんな種類のがあったんだ。全然知らなかった。
自作アプリもそれに変えてみる。
お礼にEmbeddedという綴りを教えてあげます。
697 :
NAME IS NULL :2007/09/13(木) 16:14:47 ID:w146r7vQ
fbclient.dllにmsvcr71.dllって要ったっけ?
>>697 DependencyWalkerにかけるとMSVCP71.DLLとMSVCR71.DLLにリンクしてる。
699 :
697 :2007/09/13(木) 16:42:42 ID:???
thx!
>>698 ツールで調べれば良かったのか。
>>699 コード上でLoadLibraryされるとお手上げだけどね
FBってファイルサイズがテラバイトになっても、平然と動作しますか?
>>701 >サイズ限界
>Firebirdは実際に巨大なデータベースを扱えます。データベースは複数のファイルによって構築することが出来、それぞれのファイルサイズは
>OSが提供するファイルサイズの限界まで拡張可能です。単一のデータベースファイルのサイズに関する理論的な限界は64テラバイトですが、
>殆どの場合は OSやファイルシステム、そしてHDDの残り容量により制限されます。
となってますがチューニングの余地があまりないのでDB構成にもよりますが平然と動くかはわかりません
単純にバイナリーデータ(画像・映像)が主体でDBがでかくなるだと大丈夫だと思います。
はやい回答thx!
704 :
NAME IS NULL :2007/09/25(火) 18:23:37 ID:SBOaniWd
100メガバイトのファイルをFBに出し入れしてみましたが、5分くらいかかるようです。 やっぱ、それくらいかかりますか?
705 :
704 :2007/09/25(火) 18:50:09 ID:???
こういった用途には、NASとか使うものなんでしょうか?
DBとNASを比較する意味がわからん。
>>704 100メガのファイルを出し入れってどういう意味?
100メガのファイルをBLOBに突っ込んだってこと?
3..5Mbbsまあまあじゃん
709 :
704 :2007/09/26(水) 08:43:05 ID:???
みなさん回答thx!
>>706 いや、DBのみで性能出せそうにないので、DBの代替に何使おうかな、みたいな。
>>707 下の行の通りです。
>>708 あ、やっぱりDBに100メガバイトのファイルの出し入れすると、分のオーダーになるふいんきですか。
俺ならファイルのパスだけDBに格納する。 ローカルでもNASでも後から移動できるように相対パスで。 今でもそうなのか知らないけど、BLOBは遅いからなるべく使わない、を信じてるから。
711 :
704 :2007/09/26(水) 09:29:00 ID:???
Vi$taだと、Winにログイン時にはドメインに入らず、 ネットワークのPCのフォルダにアクセスする時点でアクセス確認画面ですよ? アプリからネットワークのフォルダにアクセスでサイレントにエラー終了かも。 それとも、NAS(実は使ったこと無いんです)だと、PC起動時にマウントする形になるのかなぁ?
>>711 関係ないけどVi$taはそうなんだ。
VNPで離れたとこからログインするときなどはその方式のほうがよいな
713 :
704 :2007/09/26(水) 10:34:31 ID:???
>VNPで離れたとこからログイン これってどういう業務や用途で使われます? PC管理業者が遠隔操作? 事業部間というか遠距離ビル間のLAN(WAN?)? 自宅PCにアクセス? すっかり最新技術に置いて行かれた自分orz
Delphi→Firebirdでミドルウェアを何にすればよいかよくわからん。 IBX → IBでは使ってたけど、今後さらにIBと解離していくだろうことを考えると移行したほうがいい? MDOとかIBOとかIBX系 → ドキュメント、サンプルなどの情報が少なそう。 日本語でとなればさらに。 dbExpress → 使ったことない。 Firebird dbExpress driver (www.upscene.com)とか dbExpress for Firebird (www.crlab.com/dbx) とか入れるんだろうか? よくわからん
>>714 >IBX → IBでは使ってたけど、今後さらにIBと解離していくだろうことを考えると移行したほうがいい?
IBXでいいと思うけど
欧州とかロシア圏だとFireBirdの普及率はIBより高いはずでBorlandって色々売りさばくからIBの方が
将来どうなるか不明だ。
自分もIBX使ってるけど、TQueryよりもちょっとクセ(トランザクション系のコンポの使いかが)があったが、特に問題は出てない。
でも今はたまたま使えてるだけで将来の保証はないよね>IBX FBのバージョンが上がれば使えなくなる可能性は常にあるんじゃないの?
>>718 先の事なんて考えてたら何も使えなくなるよ。
>FBのバージョンが上がれば使えなくなる可能性は常にあるんじゃないの?
その時は別なツールが出てるかもって考えないの?
それに1回構築したら、DBのバージョンアップすら億劫になるのに周辺ツール
の事なんか心配するなんて無意味だと思う
何かにすがりたいのならオラクルかSQL2005・DB2でも使えば金さえ払えば
10年以上は安心出来るだろう・・・
>FBのバージョンが上がれば使えなくなる可能性は常にあるんじゃないの? そのときは、Del/BCBのバージョンうpやめれ。 >何かにすがりたいのならオラクルかSQL2005・DB2でも使えば金さえ払えば \|/ /⌒ヽ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ | ゜Θ゜)< ソウデモナイヨ。 | ∵ つ \___________ | ∵ | \_/
>Vi$taだと、Winにログイン時にはドメインに入らず、 >ネットワークのPCのフォルダにアクセスする時点でアクセス確認画面ですよ? NASと言いはじめた本人にこんなこと言われても困るのだが。 業務用は知らんが個人向けNASはほとんどSambaだろうから、設定で何とかできないのか? Vista使ってないからわからないけど。
722 :
704 :2007/09/26(水) 16:10:16 ID:???
>こんなこと言われても困るのだが。 NASってナス(であってる?)という名前知ってるだけなんですorz >業務用は知らんが個人向けNASはほとんどSambaだろうから あ、そうなんですか。 じゃ、ファイルサーバーPCが増えるのと同じか。 ネットで見てるとNFS対応のものもあるみたいだけど、 WindowsでNFSってどう使うのか知らないお><
Vistaで使えるのかどうか知らんが、SFUでNFSクライアントにできるみたい。
724 :
704 :2007/09/26(水) 17:35:21 ID:???
サンクス NFSって、UNIXワークステーション時代に設定されてたものを使ったことしか無いんですが、、、 Windowsの”SMB”に比べて”SFUでNFSクライアント”が勝ってる部分て何でしょうか? 一番知りたいのは、”転送速度が勝っている”かどうか、ですが。
気づいてくれないのか 板違いの質問ばかりしてるということに
>>714 おれはIBXでの案件を一つやったあと、BDEからの移行プロジェクトがあって
そのときにIBO使ったらかなり良かったので、それ以降は元がBDEだろうが
そうじゃなくまっさら新規だろうが関係なくIBOを使うようになった。
重要なところのソースは付いてるのでドキュメントとかサンプルとかは
少なくても問題ない。作りが素直なのでプロパティとメソッド一通り
眺めればわかる。
ライセンス料さえ払えるならIBOは超おすすめ。
727 :
704 :2007/09/27(木) 09:45:59 ID:???
>>725 IBX系のレスでは自分は回答者してますし。
自分はバリバリのFBオンリーのユーザーなので何言われても全然平気です。
>>726 IBXからIBOへ移行を考えています。(将来)
IBOのIBXより優れてる点キボン。
>>727 質問するなと言ってるんじゃない。質問する場所が違うだろと言ってる。
SMBとNFSの比較なんてどこがデータベースの話なんだよ。
UNIX板やOS板で質問した方が的確なレスがつくんじゃねーの?
>>729 論理的に文書は正しいが、細か杉。
レス一つ一つを厳密にルールかすんな。
どう見ても>704がスレ違いなのに>730が擁護するのがよく分からんな
ヒント: 論理的に言ってる事が正しくても、過疎気味スレで叩きをはじめるのは現実的には害悪。
叩きじゃなくて誘導じゃね?
どうせ過疎スレだからたまに賑わうのはいいけど、ちょっとウザい空気だな。 まぁ出てけとは言わないが、空気読んでねおながいします。
735 :
NAME IS NULL :2007/09/27(木) 15:20:08 ID:vvUEqgsk
2.0.3 age
IBXの将来を案じるなら、むしろDelphiを使い続けることを何とかした方がいいと思われ。
Delphiが消えるなんてありえない。 いわゆる too big too fail ってやつ。
ありえなくはないだろ。すごく困るけど。
VB6が消えるなんてありえない。 いわゆる too big too fail ってやつ。
too big to fail だろw
ぬるぽ
すいません、Oracle でいう Rowid はあるんでしょうか?
捕手
745 :
NAME IS NULL :2007/10/18(木) 16:52:28 ID:pjFuPAqs
すみません。FirefoxとThunderbirdとFirebirdって関係あるんですか?
ねーよ
以前、名前の取り合いしてたよね
IBO、何がいいのかよくわからん。 コントロールとかいらんし、IBXで十分だった・・・。
>>749 自分もIBX使用中&IBO未使用で、それ知りたかったところ。
何か良いところあるんじゃね?
FB2.1beta2試してますが、kinterbasdbで接続できないのは いやがらせですか?
>>750 あなたの英語力が試されているのだと思います
752 :
NAME IS NULL :2007/11/04(日) 11:32:15 ID:8tUMq9bK
なんかXP SP2の環境で FB1.5(最終だったはず) + FB.NET プロバイダ2.0とかってアクセスする際に SJIS_0208でアクセスが正常にできる環境とできない環境があるみたい 具体的にはSQLでInsert投げた時とかに 文字コードが〜〜とかって出る 環境の構築の仕方がまずいのかなんなんだろう・・・・・
>753 EXEと同じフォルダに(Visual StudioならDebugフォルダ)Firebirdのライブラリとかintlフォルダとか コピーしないといけないんじゃなかったっけ? 何がいるんだったかは忘れた
755 :
NAME IS NULL :2007/11/11(日) 03:36:15 ID:qd6FdFkA
>>754 そうなの?
てっきりガーディアンとかのサービスが動いてたらDLL使ってアクセスできるもんだと・・・
その辺で何かあるのなら確かに動きが違うかもしれない
情報サンクス
>>754 それEmbededの場合じゃない?
とりあえずデータベースとDBドライバ両方とも文字セット設定してあるかい?
select * from (select field1||'--'||field2 as aaa from table) group by aaa みたいなSQLを.NetとISQLで実行すると結果が異なるんだけど他の人も再現するんかね? うちの.Netだとハイフンが一つになってしまうんだが・・・
IBXでTIBSQL使って大量のレコードをインサートするプログラム作ってるんだけど パラメータ使ってINSERTすると滅茶苦茶遅いね、ベタにINSERT文組み立てて投げた方が早い。
そりゃ2回投げるからな。 モニタみれば一目瞭然。
>>760 なるほど…
IBXだけがそうなのか、それともどの実装でも同じなのかどっちだろう?
>>759 PrepareとFreeHandle使っても遅いの?
TIBQuery使えば無問題。
765 :
NAME IS NULL :2007/11/14(水) 02:37:10 ID:ILbp4//g
SQL鯖やオラクルみたいに簡単にモニタできるツール欲しいんだけど どっかにフリーで落ちてないかな? 英語でもいいんだが
wikiのトップページがどこかのロボットに勝手に書き換えられていたっぽいので 勝手にバックアップから戻しちゃったけど、何か対策とか取れないのかな。
FB1.5ですが、integerのフィールドはnullには出来ないんでしたっけ?
771 :
NAME IS NULL :2007/11/24(土) 02:20:05 ID:CQAA4EhQ
>>768 intでもnullはいれれるよ。という質問ではないの?
# 最近spamメッセージ多し。
NOT NULL属性にしてない限りINTEGERでもNULLは入るよ。
いやな、NOT NULL じゃないINTEGERフィールドにNULLが入らないエラーが出て困ってたんだ。 結局テーブルを削除して作り直したら直った。
774 :
NAME IS NULL :2007/12/04(火) 13:26:22 ID:dmNd6p6a
>database file appears corrupt () >bad checksum >checksum error on database page (数字) みたいなエラーが出るんですが、何ででしょう?
775 :
NAME IS NULL :2007/12/05(水) 12:11:23 ID:rHpmudvD
checksum errorが出た逝こうのページって復旧できないんですかね?
gfixで復旧できるかもしれないし出来ないかもしれない
gfixで復旧できない場合ってあるんですか? というか、復旧できなかった経験のある方居られますか?
二つのデータベースで同じテーブル名のテーブル構造の差分を出力してくれるツール あるいはSQLコマンドって有りますか?
>>777 物理的に逝ってしまったらどうしようもないわな
>>778 有料ならいろいろあるけど、適当なスクリプトでDDL吐き出して
diffに食わせる仕組み作ったほうが安上がりな気がする。
安上がりだろうけど、DBのGUIツールって、フリーでも有料でもすんごい便利だお。
>>781 GUIツールっつっても、Firebirdの場合はIBExpertのPersonal版だけあれば何もいらなくね?
783 :
781 :2007/12/06(木) 14:44:21 ID:???
785 :
774 :2007/12/07(金) 13:58:04 ID:???
コピーしたDBファイルが壊れていただけで、 オリジナルDBは正常ですたorz
>>785 動作中にコピーしたら、そりゃ論理的に整合性取れなくなる場合がある。
コピーする場合でもバックアップ→リストアが基本。
787 :
774 :2007/12/11(火) 11:11:06 ID:+hnFBK9o
ついでなので、質問させて頂きます。 VCL/IBXで接続しているのですが、壊れたDBに接続しても検証してないので接続できるんです。 しかし、やっぱり壊れたDBに接続したときはエラーを通知して欲しいと思うのですが、プログラムでチェックする方法は何らか方法無いでしょうか? 自分の経験では、ハードディスクがパンクしたときにはFBファイルは壊れるみたいで(トーゼンですが)、その場合、ODBC接続すると、ちゃんと検証してエラーを教えてくれるみたいです。 でもチェックのためだけにODBC接続ってのもorz
APIでやればいーのでは? というか、コネクションごとに自動でエラーチェックなんて、処理時間のかかる可能性の あることやるなんて、ちょっと考えたらそれは困ったものだと思うが Office系のソフトでしか使わんとか、そうそう繋いだり切ったりしない用途ならともかく
789 :
774 :2007/12/12(水) 08:43:08 ID:???
>>788 ま、その通りですね。
DB接続は短時間でやって、アプリの画面にDB検証ってボタンを付けたいです。
790 :
774 :2007/12/13(木) 09:34:12 ID:???
>APIでやればいーのでは? サンプルコードきぼんにゅ。 だって、ここで共有すればみんな助かりまつよね?
コマンドラインツールのソースを落としてきて眺めるもよし IB6の公開されてるApiGuide.pdfを入手してきて読めば詳しく書いてあるよ IBPhoenixのサイトとかから落とせるし 商用ベースだけあって、情報がまとまってて集めやすいのも利点だと思うけどなぁ
てかVCLベースならDel/BCB付属のInterbaseにPDFマニュアル付いてるな。
793 :
NAME IS NULL :2007/12/17(月) 11:13:47 ID:F/bssCca
Del/BCBとかの自作の検証ツールがあったらソース付きで公開してYO!
公式でもないんだからそういのを要求するなよwww
gfix -validate相当のapiを使えばいいんだっけ?
796 :
NAME IS NULL :2007/12/19(水) 02:47:45 ID:B2XDvvlK
797 :
NAME IS NULL :2007/12/19(水) 22:13:56 ID:2q2+Id+W
もう随分前だけど1.5.5age
ちなみにinit.pyのコンパイル済みファイルpydとpycかな それを消さないとだめよん。
FBサーバーの起動で、レジストリアクセスでコケたりすることありますか? (エラーコード1053だったかな?)
FB2.1RC1出ました
803 :
NAME IS NULL :2008/01/29(火) 10:55:46 ID:7RyjIxSH
804 :
NAME IS NULL :2008/02/02(土) 13:24:46 ID:KMFh2IGY
VS2008上でFBのスキーマ定義したりできる?
>>804 自己レス
DDEXを使えばいいらしいということがわかった。
が、Expressではダメなんですね
複数テーブルを結合してるViewのSelectにPlanを付けたいんだけどどっかいいサンプルないかね? いまいちよく分からなくて適等に付けたら View V_EVENT has more than one base table; use aliases to distinguish. って怒られるw
自己解決したので結果だけメモ plan (ViewName TableName index (IndexName)) TableNameはViewNameのビューに含まれるテーブル名
embed版で、タスク間でDBを共有って無理なんですか?
そもそも、タスクじゃ今の時代どういう単位の事を指してるんだかわからんと思うが
2つのアプリから接続するのは無理
FB2.1rc2でてます
共有するならembed版じゃなくて普通のでいいじゃん
embedってことはインスコしないでDLLだけで使いたいんじゃない? サーバプロセスがいない状態でリソース管理できるわきゃないのでそんなDB無いと思うが
>embed版 関係無いけど、これITRON with Hew(←たしか、STL不可!)でも動作する? 組み込みでもgccの世界なら動作するんだろうが。
ITRONじゃ動かないんじゃない?しらんけど FirebirdのEmbeddedはDB鯖立てなくてもDLL+データベースファイルで使えますよって意味だと思うので 組み込み開発とはあまり関係無いと思ふ
818 :
NAME IS NULL :2008/03/14(金) 21:41:43 ID:wQZNi9KP
embed使うんだったらsqliteのほうがいいでそ
いや、C/Sにする可能性があるならembededのほうがいい。
なんで?同じなの?
>>819 どうして?速度とか安定性とかの面でSQLiteのほうがいいってこと?
メインプロジェクトだし、各種サポートも手厚いからな Firebirdのembeddedはいつ打ち切られても驚かない
DelphiやC++BuilderならBlackfishSQLはどうよ?
BlackfishならSQLiteのがまし
今となっては、何か特別な利点でもないかぎりSQLiteが無難だな
なんっつっても adobe がスポンサーなのはでかいな
CREATE TABLE NEW_TABLE1 ( FIELD1 VARCHAR(20) CHARACTER SET SJIS_0208, FIELD2 VARCHAR(20) CHARACTER SET SJIS_0208); insert into new_table1 values('aaa','bbb'); insert into new_table1 values('ccc','ddd'); のテーブルに select col from (select field1||'-'||field2 as col from new_table1 group by col) order by col を.netから実行すると col ------- aaabbb cccddd が返ってくるんだけど何故でしょうか? isqlからだと col ------- aaa-bbb ccc-ddd って返ってくるのに・・・○rz
>>828 とりあえず該当部分のソース見せてくれれば解決すると思う。
とりあえずこれで現象が再現しますた private void button1_Click(object sender, EventArgs e) { FbConnectionStringBuilder csb = new FbConnectionStringBuilder(); csb.DataSource = "localhost"; csb.Database = @"c:\eee.fdb"; csb.UserID = "sysdba"; csb.Password = "masterkey"; csb.Charset = "SJIS_0208"; FbConnection con = new FbConnection(csb.ToString()); try { con.Open(); FbCommand cmd = con.CreateCommand(); cmd.CommandText = new StringBuilder() .Append("select *") .Append(" from (select field1||'-'||field2 as col") .Append(" from new_table1") .Append(" group by col)") .Append(" order by col").ToString(); FbDataAdapter da = new FbDataAdapter(cmd); DataTable dt = new DataTable(); da.Fill(dt); dataGridView1.DataSource = dt; } finally { con.Close(); } } これを書いてて気付いたんだけど csb.Charset = "SJIS_0208"; が無いとちゃんと帰ってくるっぽいなぁ・・・
>>830 問題なさげ。
データベース側のCharsetは何になってるの?
>831 遅レススマ 多分SJIS_0208だと思う 他情報としては Firebird 2.0.1 WindowsXP SP2 Visual Studio 2005 8.0
833 :
NAME IS NULL :2008/03/29(土) 19:34:10 ID:8McpHn5I
select code, name as shouhin from tbl_zaiko where shouhin = 'xxx' というようにwhere句内で別名で抽出したいのですが、うまくいきません。 無理なのでしょうか? FB2.0.3Win です。
834 :
NAME IS NULL :2008/04/01(火) 00:22:29 ID:DdVYPUcD
無理なのです
View作るかサブクエリからSelectするか・・・ 内部的にはどっちでも同じだろうけど
c#からCreate Tableを実行したらこんなメッセージが帰ってきます Charset指定しなかったら問題ないんだけどUTF8にしたとたん・・・ The returned message was: unsuccessful metadata update CREATE VIEW failed arithmetic exception, numeric overflow, or string truncation
>836 テーブル名やら列名が長すぎるとか?
>837 すいません、CharsetにUNICODE_FSSじゃなくUTF-8と入れてましたorz=3
839 :
NAME IS NULL :2008/04/21(月) 02:37:34 ID:PYfvDzpe
過疎にも程があるだろう Firebird 2.1 is Released!!
841 :
NAME IS NULL :2008/04/22(火) 19:25:28 ID:HW1Nn4JZ
どなたかお助け下さい。 Windowsで作成したデータベースをこのほどLinux(Vine4.2)へ移しまして稼動しております。 クライアントはDelphiアプリをWindowsから接続しており、問題無いのですが、 LinuxのperlからDBIを使って試したところ、接続は出来るのですが $sth=&dbh->prepare($sql); で$sthにハンドルが帰ってこず、データが取得できません。 試しにLinuxで直接作成したデータベース(WinのIBConsole使用)では問題なく接続・データの取得ができています。 Windowsで作ったfdbファイルをLinuxに移すには何か問題があるのでしょうか? Firebird1.5
ファイルコピーじゃなく、きちんと移行したほうがいいよ
やったこと無いから分からないけど 1.WinでFirebird稼動させる 2.WinのFirebirdからLunuxのgbakでバックアップ取得 3.LunuxのFirebirdに復元 って感じなのかね?
844 :
841 :2008/04/23(水) 11:39:11 ID:???
>>843 バックアップ・復元を試みましたが、結果は同じでした。
しかし、同じデータベースの中でデータを取得できるテーブルと出来ないテーブルが
あることがわかりました。比較的データ量の少ないテーブルだと取得できる傾向があります。
しかし、理由がまだわからず四苦八苦しております。
何か根本的に間違っているかもしれませんので、Linux側で新規にデータベースを作成して
同じデータをぶち込んでみて試して見ます。
他に何か情報がありましたらご教授下さい。
Charsetとか? 取得できるテーブルは日本語が入った項目があったりしてw
FBCopyというデータコピー専門のユーティリティもあるな 使ったことはないけどね
847 :
845 :2008/04/24(木) 10:25:34 ID:???
>845 自己レス 「取得できないテーブルは・・・」だった
>>841 > $sth=&dbh->prepare($sql);
$sth = $dbh->prepare($sql) or $dbh->errstr;
で、どんなエラーが帰ってきてるか見れば一目瞭然では?
849 :
841 :2008/04/24(木) 18:00:56 ID:???
>>848 ありがとうございます。Delphi+Firebirdは長く使ってきたのですが、
LinuxやPerlはまだまだ初心者なもんで、こういった融通が利かなくてご迷惑お掛けします。
早速試しましたら以下の様なエラーが得られました。
An error was found in the application program input parameters for the SQL statement.
-Dynamic SQL Error -SQL error code = -804 -Data type unknown -Client SQL dialect 1
does not support reference to DATE datatype
何とも申し訳ない。Dialectを指定していなかったので日付タイプの入ったテーブルが開けなかったようでした。
本当に助かりました。他の皆様にもお礼申し上げます。それでは失礼いたします。
あー俺も一度あったな、それ 懐かしい
kwsk >Dialectを指定していなかったので日付タイプの入ったテーブルが開けなかったようでした。 意味が分からないです(><;)
ああ、DBで日付タイプなんてつかうなよ。 すべてvarcharにする。
>>852 その理由を初心者の俺にもわかるようにおながいします。
型指定がマンドクセとかそんなような理由だったはず。 元々Stringだから変換してDBいれてまたselectするときにCastするのがイヤだとか、時間がはいってるんだかはいってないんだかわからんとか。 宗教戦争に近いからオレは相手にしないことにしてる。
日付/時刻の扱いはDBMS毎の方言が強かったり、古いメインフレームとのデータのやり取りには 8桁の数字の方が都合が良かったり、2000年問題が控えていたり… という、所詮は過去の遺物。
char, varchar, numeric しか使え奴はCOBOLに帰れ。
BIGINTにUTCなUnixTimeで入れちゃえ
858 :
NAME IS NULL :2008/05/07(水) 16:45:50 ID:ZTZZmHKb
2.1インストールしてみた。 DESCRIPTIONにマルチバイト文字入れてるデータベースを2.1環境でリストアして UNICODE以外で接続すると、キャラクタセット絡みのエラーでDESCRIPTIONが 読み出せなくなる。 BLOB TYPE 1の仕様が変わったとかリリースノートに書いてあるがそのせいか。 再度DESCRIPTIONを入れ直してやればいいんだけど面倒くさい。 あと懸念されていた期首依存文字は問題なく通るっぽい。
すいません単純な質問なんですが、既存のデータベースの所有者を変えることってできますか? SYSDBAで作ったものを他のユーザーの所有にしたいのですが。
860 :
NAME IS NULL :2008/05/10(土) 18:51:34 ID:x9DzxF7W
ISC ERROR CODE:335544831 のエラーは如何対処したら宜しいのでしょうか?
862 :
MOMO :2008/05/17(土) 18:08:56 ID:8wYAFAw4
教えてください。 Delphi DBGrid上で編集したデーターを データーベースに反映するには? InterBaseでは'ApplyUpDates'を実行するだけで反映するのに、Firebirdでは 出来ないです。
comitしろよ・・・
864 :
MOMO :2008/05/17(土) 21:04:07 ID:ECaA1ZTF
'Commit'ですね了解、ありがとうございます。
嫌味なガキ過ぎてワロタ
スレ横断してコテ使ってるような「自己顕示欲の塊」にロクな人間はおらんよ。
867 :
NAME IS NULL :2008/05/19(月) 12:32:14 ID:Dl+5frKz
質問お願いします BLOBのテキストデータはUPPERとかができないんで 大文字小文字区別なく検索するには、 レコードを一つ一つ読み込んでプログラム側で処理するしかないんでしょうか?
868 :
NAME IS NULL :2008/05/19(月) 17:29:05 ID:Y84PAtfj
869 :
NAME IS NULL :2008/06/09(月) 23:26:44 ID:kvRpZFxS
Firebirdって「SET TRANSACTION・・」は どうやってアプリ側から使えるのか ご存知の方いませんか? SQLコマンドだからIBExpertからはできるけど、 VB.NETから、FBCommandに設定しても× NOWAITの指定で、ExceptionでTransactionの状態を 取りたいのに。これじゃ使えませんが・・ ちなみにINSERTはテーブルごとロックがかかってしまうの でしょうか?
意味不明
FBのカラム名称の最大値って31文字なんですね。 最低でも256、場合によってはギガまでおkだと思ってたのでちょっと意外。 ま、性能重視なんでしょう。 SQLステートメントの限界は何文字くらいなんだろ。
Perl(DBI、DBD::Interbase)とFirebirdを使っています。 例えば1000件あるデータからSELECT文で抽出し、 ・抽出されたデータ数 ・20番目〜30番目のレコードのデータ が必要で、現在の処理としては (1) 1〜19番目までfetchrow_arrayrefで空送り (2) 20〜30番目までfetchrow_array()でデータを取得 (3) 31番目以降をfetchrow_arrayrefで空送り となっていて、(1)〜(3)の間にカウンタの数値を増やしてデータ数を取得しています。 現状の問題点として、(1)と(3)の処理時間が長く全体のパフォーマンスを下げてしまっています。 データ数が必要なので(3)の処理をしていますが、別のSQL文でcountを使って(3)の処理を省いたとしても必要なデータが91〜100番目となった場合に今度は(1)の処理時間が長くなってしまいます。 何とか(1)と(3)の空送りの処理速度を上げる方法は無いでしょうか? よろしくお願いします。
FIRSTとSKIPを使えばいい wiki のリファレンスをちゃんと読もう
>>874 ありがとうございました。
おかげさまで納得のいく速度になりました。
DBIとかDBDのリファレンスばかり見てたもので・・・SQL文で対処できるとは思ってませんでした。
>FIRSTとSKIPを使えばいい このSQL文ってやっぱFB独自拡張?
じゃないかと IBでも、別の方法で同じようなこと出来るとか聞いたけど、IB7以降は知らないから 詳しくはわからないな
879 :
876 :2008/06/12(木) 08:53:07 ID:???
なるほど。 つまり、SKIPみたいなSQLの独自拡張はもとはM$(の場合はTOPとかだったような)が実装していたが、 Webブラウザアプリ時代必須となってFBも独自拡張せざるを得なかった、と。
880 :
NAME IS NULL :2008/06/15(日) 20:27:12 ID:e0f7YxsL
自作のソフトに使おうと思っています 開発環境はVB.NET 2005です データベースをターゲットマシンにインストールしなくても大丈夫という話を聞きました ということはアクセスのMDBファイルのようにデータファイルだけ相手のマシンに持って行くというような運用が可能と思っていいのでしょうか 作成したソフトのインストーラーに ・自分で作ったソフトのexe ・.Net用のデータプロバイダ(DLL) ・データファイル を組み込んでおけば、相手にはサーバはいらないと言うことでいいですか? また、データファイル自体にパスワードを掛ければsaユーザーからも覗かれずに(というよりも自作ソフトだけがsaユーザーとして動作?) すむと言うことでしょうか?(mdbファイル自体にパスワードを掛けるようなイメージを持っています)
>>880 FireBird Embedded Server でぐぐれ
2.1.1RC1ってでてるね。
884 :
NAME IS NULL :2008/07/10(木) 11:04:41 ID:vP2wpXqV
最近興味を持ったのでage
こんだけ何やるにも楽ちんなDBMSも無いと思うんだけどね。
サーバが Windows Vista Business SP1、Firebird 2.1 クライアントが XP SP3、Firebird 2.1 の isql.exe で、 Firebird .NET Data Provider と C# で接続してみるプログラムを作成中詰まっています。 適当に内容を入れたテーブル SALES に isql.exe で SELECT * FROM SALES; は内容が正しく帰ってきますが、 using System; using FirebirdSql.Data.FirebirdClient; namespace DBattach_test { class Program { static void Main(string[] args) { FbConnectionStringBuilder cs = new FbConnectionStringBuilder(); cs.DataSource = "Server"; cs.UserID = "user"; cs.Password = "password"; cs.Database = @"C:\path\to\DATABASE.FDB"; FbConnection conn = new FbConnection(cs.ToString()); conn.Open(); FbCommand cmd = conn.CreateCommand(); cmd.CommandText = "SELECT * FROM SALES"; FbDataReader dr = cmd.ExecuteReader(); while (dr.Read()) { Console.WriteLine(); Console.WriteLine(dr.GetDateTime(0) + "|" + dr.GetInt32(1)); } dr.Close(); conn.Close(); } } } こんなコードだと「+ ArrayHandle 'dr.fields.fields[0].ArrayHandle' は、型 'FirebirdSql.Data.Common.IscException' の例外をスローしました。 FirebirdSql.Data.Common.ArrayBase {FirebirdSql.Data.Common.IscException}」 とデータが帰ってこないようです。(whileにブレークポイントを入れて確認) サーバのログには「 INET/inet_error: read errno = 10054」と出ています。 isqlでは正常なことから何かが足りないのだと思います。判る方解説お願いシマス
テーブルの構造は? あと関係ないかもしれないけど cs.ServerType = FbServerType.Default; 入れときー
IBを使ったシステムが動いてるところに別のFBを使ったシステムを入れたいのですが、 古いInterbaseサーバーが動いてるマシンにFB1.5をインストールしてIBと同居させることって可能ですか? IBはたしか4.2です。
>>887 ありがとうございます。
指摘の文を追加し、もう一度やるときにisqlを終えてから実行したら通ってしまいました。
その上で改めて考えてみると、テストデータを流し込んだあとCOMMITし忘れていました。
その所為で行がないデータが帰ってきていたようです。
とても恥ずかしいミス申し訳ありません。
>>888 確か可能、でもポート番号変えなきゃいけないから面倒だよ。
2.1.1がリリースされてんね。 >888 できる。けどIB4.2っていつのやつよ? IBが入ってるところにFirebirdを入れると、IBを見つけたんでごにょごにょ、といわれる。そこでFirebirdの サーバポートをIBの3050とはかぶらないように変更して起動。クライアントDLLもgds32.dllじゃなくて fbclient.dllを使用する。
892 :
888 :2008/07/17(木) 23:57:06 ID:???
>>890 >>891 ありがとうございます。
ちょっと面倒そうなんで鯖分けられないかどうか検討してみます。
ネタがない
894 :
NAME IS NULL :2008/07/30(水) 12:59:10 ID:veO6mGJq
>>893 トラブルが少ないからか、はたまた利用者が少ないからか...
利用者は居ると思うけど、小規模で使ってる事例が多いのと、 小規模の限りトラブルが発生しないから話題が無いんだろうね。 その反対に、なんとか鯖2008みたく、年々メジャーバージョンうpしてくれたら大迷惑だけど。 とりあえず、トラブル事例と対処事例を書いて欲しいな。
896 :
NAME IS NULL :2008/08/02(土) 00:51:05 ID:qUkrWuPZ
WindowsでFireBird 2.0以上がインストールされているかなどプログラムから調べるにはどうすればいいのでしょうか? レジストリのHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstallとかの「DisplayName」を調べるとかしかないんでしょうか。
HKLM\Software\Firebirdとかにエントリがない?いま手元にFirebirdが入ったPCがないんであてずっぽだけど。
898 :
NAME IS NULL :2008/08/03(日) 10:55:49 ID:2v59flf/
日本語の本がもっと出るといんだけどなぁ
899 :
896 :2008/08/05(火) 00:01:30 ID:???
>>897 レスありがとです。亀ですいません、、
いろいろレジストリを検索しいろいろ検討した結果
HKEY_LOCAL_MACHINE\SOFTWARE\Firebird Project\Firebird Server\Instancesの
DefaultInstanceに入っているFBフォルダへのパスから”bin\fbserver.exe”ファイルの
バージョンを取得する事にしてみました。
Firebirdを組み込みで使ってるんですが、 たまたま中身をバイナリエディタで見たら 普通に文章が読めてしまいました 暗号化までは行かないまでも、せめてアクセスやSQLServerみたいに テキストは読めなくなるようにならないでしょうか
読めなくしてから格納すれば?
そうするとメンテしづらくないですか?
ツールで読めたらテキストエディタで読めるより良くない事態で、 それこそ意味なくない?
機密性の高いデータを扱うなら市販DB使えよ
たかだかそれぐらいのことで市販ですか
そういうときの商用製品ですよ。
FBは市販品より上という稀有な例だと思うお。
商用のInterbaseはその点改善されたの?
以前のスレでは、速度なんかは全般的に新IBのほうが高速だとかいう話があったような 確か、DB本体のデータ構造も変わってるよね
IBも進化してるんだと思うよ 俺は知らないけどw
firebirdのロックの仕組み、なれると使いいいのだけれど 普通のと違うから最初は敷居が高いな。 この辺の詳しい説明があればもっと使われると思うのだけど・・・
>普通のと違うから kwsk
914 :
NAME IS NULL :2008/10/07(火) 23:53:18 ID:iBo0WhZL
firebirdにValueSQLをつなげたいんだけど、どうやってやるの?
916 :
NAME IS NULL :2008/10/22(水) 00:16:47 ID:Un32T6iZ
池田電機(姫路パワハラ関係の登場人物紹介) 小川明利(自己を正当化するためには他人を貶してまで嘘をつくパワハラ課長。キチガイ。口臭対策はしてるがまだ臭い。古屋の犬一号。) 児島(無修正エロDVDのコピー販売を社内でしてた人。社外秘資料と個人情報の流出源となった) 古屋孝一(パワハラ。口が臭い。会社を代表する精神異常者。キチガイ。ネチネチしてる。幼い頃食うものに困ってゴキブリまで食ったと某社員にカミングアウト) 内藤(異様に威張ってる。事務室でタバコを吸う。上司には態度がコロっと変わる。セクハラ疑惑あり。口癖は「シネ」) 児島の妻 福井章子(古屋、小川の不倫相手。不倫関係を利用し社内で権勢を誇る。淫乱尻軽女) 北川(児島の顧客) 中村(児島の顧客) 新免(古屋の腰巾着。中年同好会会長。仕事中糞つまらんオナニーネタを語る40過ぎのおっちゃん。古屋と共通してキモオタ系)
918 :
NAME IS NULL :2008/12/05(金) 23:52:44 ID:Uhx5PcEY
ACCESS2000形式のMDBファイルをFDBファイルに変換するツールってありますか? MDBファイルの方はテーブル名、フィールド名に日本語使いまくりです。 FBのバージョンは1.5.3です。
プログラマじゃないならしょうがないけど プログラマならそんなの簡単に作れると思うけど・・・
>>920 ぶっちゃけ、管理ツールはIBExpertがあれば何もいらない気がする。
922 :
NAME IS NULL :2008/12/09(火) 22:00:07 ID:7GJBdUgr
FB1.5で同じ構造のマスターテーブルとワークテーブルがあって ワークテーブルの内容でマスターテーブルの複数のフィールドを更新するSQLって どう書けばいいんですか?
あ
あgt;ああ
>>922 追加であれば、insert ... select
更新であれば、1フィールドごとにサブクエリ書くしか無いんじゃないのかな。
そんなめんどくさいことをするなら、
ワークテーブルからフェッチして、ループを回しながら、一行ずつupdateした方が楽な気がする。
通信により、性能の悪化が懸念されるのなら、ストアド化。
それでも、行数が多すぎると、更新時間は相当かかるだろうけど...
FB 2.0以降なら、ブロック構文が使えるので、もう少し手が抜けるんだけどね。
>>922 自分、FB1.5から2.0に変更したが、アプリの変更0だったお。
インストーラーがキックするExe名は変更したが。
今までIBOConsole使ってたんだけど flamerobinの存在を最近知ったw 意外と使いやすくて気に入った FB1.5で運用してるんですが FB2.1に変えようかと考えていますが 互換性の問題ありますか?
>互換性の問題ありますか? FBの強みって互換性モンリーw
サンクスコ
930 :
NAME IS NULL :2008/12/10(水) 13:46:49 ID:g4K/cfHl
>>925 やっぱり簡単には出来ないようですね。
現状2万件程度をループでまわして更新していてもっと早く出来ないものかと
思ったのですが。
>>926 ありがとうございます。
残念ながら1.5環境は消せないので2.0移行は当面出来ません。
IBExpert インストールしてみたんだけど、SHIFT-JIS 以外の文字列を扱うにはどうしたらええのん? Firebird2.1 で少なくとも UNICODE 系データベースは設定をいろいろ組み合わせて接続してみたけど全滅。 ちなみに flamerobin はいけた。
932 :
920 :2008/12/11(木) 15:43:39 ID:???
今から新規に採用する場合、素直に2.1.1使うのがいいの?
そりゃそうだろ。
Framerobinに出来てIBExpertに出来ない事ってなんかあるの?
>927 移行する時は gbak -r してね〜 手抜きしてそのまま使ったらえらい目にあったw
↑ kwsk。どういうこと?
ただのユーザなので詳しい解説はできませんが firebird ODS でググるとなんかわかるかも
>>936 kwsk
1.5から2.1に単純に入れ替えてみたらBLOBまわりでエラー出たよ
原因はおそらくIBObjectのバージョンだとおもうんだけど
今更いじるのいやだからやめた。
ちなみに2.0なら「今のとこ」動いてるみたいw
>>938 てか、ぐぐったら今日付けの記事が出てきたじゃまいかw
もしかしてご本人様ですか?w
大変参考になりました
週末試してみよう
1系から2系への移行はマイナーなところでは
>>858 みたいなのもあるから注意な。
はやしさんの記事をまとめると、ODSの関係から1.0→1.5→2.0→2.1というアップデートには gbakによるバックアップ/リストアが必要、ということですかね。2.1はまだ使ってないから2.0からの 移行にバックアップ/リストアが必要だとは気がつかなかった。
下位互換でFB2.xからODS10.xは基本的に問題ない という理解は間違ってる?
下位互換あるの?ないという認識だったのだが…。偉い人教えて。
素人が口を挟んですみません。 少なくとも完全互換ではないみたいですよね。 何らかの事情でリストアをやれないのであれば、 どこまで互換性が保たれているかわからない以上、 1系のまま運用するのがベストだと思います。
Firebirdをアップグレードしたついでにバックアップ→リストアが出来ない 事情なんてあるのか? > どこまで互換性が保たれているかわからない リリースノートに細かく書いてあるぞ?
なんか、1系のままのほうがいいっぽいな・・・
1.5 → 2.X は問題ないでしょ?
@IT、せっかくFireBird取り上げるならもっと実務的なことやればいいのに… 中古のSPARCでFireBirdビルドして動かすなんて、たぶん一人の需要もないだろうに なんでこんな記事書いたんだろ。
いやがらせ
embedded server ってWindowsMobileでは使えないですよね?
>>952 ありがとう。探したつもりだったんですがorz
embeddedがWMで使えたら結構便利だと思うんですけどね。
954 :
NAME IS NULL :2009/01/03(土) 14:34:59 ID:Ub59D0dC
SQL Server Compactで我慢しとけ。
SQLiteという手もある
他DBを薦めるなw
fb2.5ってのもあるな
バックアップとリストアについて教えてください。 ●バックアップ取得元の環境 OS:Turbo Linux(詳細現時点で不明) firebird バージョン:1.5.3.4870 下記実行コマンドにてバックアップ取得 /opt/firebird/bin/gbak -B -user sysdba -password xxxxxx backup.fdb fire.bak ●リストア先の環境 OS:Red Hat Linux release 9 (Shrike) 【カーネル:2.4.20-8】 firebird バージョン:1.5.5.4926 下記実行コマンドにて新規データベースへ復元 /opt/firebird/bin/gbak -C -user sysdba -password xxxxxx fire.bak restore.fdb すると、こんなエラーが出る。。 gbak: do not recognize domain attribute 13 -- continuing gbak: ERROR: do not recognize record type 11 gbak: Exiting before completion due to errors domain関係でエラーが出たから、バックアップ元でshow domainで 確認してみたけど、設定されてなかった (There is no domain in this databaseと出る)。。 ためしに、上記のとおり1.5.5同士でテスト的に作ったDBの バックアップ-リストアをしたら問題なくできた。 なんでだろう。OS・firebirdのバージョン?何か足りない?まちがってる?
958です。 関係ありそうなオプションnt(互換性を無視したバックアップファイルを作成する) をつけてバックアップ-リストアをしてみた。 【バックアップ】/opt/firebird/bin/gbak -B -nt -user sysdba -password xxxxxx backup.fdb fire.bak 【リストア】 /opt/firebird/bin/gbak -C -user sysdba -password xxxxxx fire.bak restore.fdb こんなエラーが。。 gbak: do not recognize backup attribute 84 -- continuing gbak: ERROR: Expected database description record gbak: Exiting before completion due to errors database description recordが望まれる? これは何?
958、959です。 自己解決しました。 バックアップファイルをサーバから winxp端末にダウンロードする際に、モード指定しなかったから 勝手に改行コードがCR+LFにされてやがったっ!!
だから、ちゃんとバイナリモード指定して
ゲットして試したらうまく復元できた。。 お騒がせしました。 初歩的なミスっすね。。いかんいかん。。
.NET Providerを使用しているのですが。 FBConnectionのBeginTransactionで BeginTransaction( FbTransactionOptions::NoWait | FbTransactionOptions::Exclusive ); とかやるとエラーになってしまうんですが これって指定の仕方がまずいのでしょうか? やりたいのは、あるテーブルへの更新を一人に制限したいため 同じBeginTransactionを発行したときにエラーになるようにしたいのですが。
それはまた古臭いロック方法ですな
最新のFirebirdに関する書籍って日本ではでてないんでしょうか
>965 日本でどころじゃなく海の向こうでも出てないんじゃないかね。 ところでFirebird 2.0.5がリリースされてますね。
誰も気にしてないな
現状のもので安定してまつ
医師会が出している給管鳥という使っているんだけど、ヘッダーとかフッターを印刷したい場合はどこを書き換えればいいの?
>>969 バックエンドにFirebird使ってると言うだけだから、このスレで聞いても
誰も分からないと思うぞ。
正直、1.0.3 で間に合ってる。 1.5 使ってるけどね。 IBX から変更するの面倒なのよ。
2にしてトラぶったら面倒なだけだしね
2の表式になれてしまうと、1.5以前には戻れなくなる。 ってゆうか戻りたくない。
>>970 ありがとう。JAVAの勉強をしますね。
ちなみに、あのソフトはデーターのエクスポートを絶対に出来ないようになっていて非常にムカつきます。
なんで、そんな糞仕様がまかり通るのでしょうか?
患者名簿との照合をディスプレーを見ながらしています。なんで、こんなアナログな作業をさせるのでしょうか?
生越の野郎、まじムカつく。
975 :
NAME IS NULL :2009/02/04(水) 06:33:58 ID:VhWhZWCr
情報漏洩対策だろ。
>>975 印刷データはアクロバットに渡す仕様です。アクロバットからテキストデータをエクスポートできます。
そのデータを整形すればなんとか使えるんですけど、スクリプト書くの面倒くさい。
医療用レセコンはデーターを取り出せるのに、たいした金額も扱わない介護保険用レセコンでデーターの再利用が出来ないのは不合理ですよ。
Firebirdスレで愚痴るのは不合理ですよ。
何を言ってるかまったくわからないのです 怒りだけは伝わってきましたが
979 :
976 :2009/02/05(木) 04:10:56 ID:???
絶対にエクスポートできないようにする方法が知りたい
単純な方法だと、独自に暗号化した後にDBに入れてるんじゃないの?
982 :
976 :2009/02/05(木) 07:31:10 ID:???
すみません。コマンドが存在しないだけです。あれはJAVAでオープンソースだから、方法はあるんでしょうが、一般ユーザーには手段が提供されていないだけです。
DBのvarchar(254)属性の項目のデータが消えてしまうのですが、 FBのSQLログ機能みたいなものでトレース出来たりしますか? DBファイル(.FDB)から逆に負うことはやっぱ不可能ですよね?
>>983 消えるってドユコト?
一文字も入らない?
127文字(or 126 or 84文字程度)しか入らない?
254文字目以降が入らない?
Firebird Wikiのgfixやgbakの説明のあたり消えていませんか?
わけわかめの人間が編集したみたいだな それで放置して逃げるんだから困ったものだ wikiのバックアップに残ってたのを戻しておいたが
987 :
985 :2009/02/08(日) 18:12:36 ID:???
988 :
983 :2009/02/09(月) 09:06:15 ID:???
多分、思わぬところでSQL発行して消してるか、 SQLの実行時に空文字設定してるかで、 あるとき突然消える、みたいな。
>>982 IBExpertのフリー版でも拾ってきては? あれならExcelにも吐けるし。
990 :
983 :2009/02/09(月) 16:30:39 ID:???
実行されたSQLを保存するような方法(FB機能とかFBツール?)無いですか?
992 :
983 :
2009/02/10(火) 08:48:54 ID:??? thx! FBHookだからHook機能はありそうですね。 自分の欲しい機能なので使ってみます。