| DB とファイルシステム
多分そのうち必要になるので。
 
 
このまま記事を入力し[投稿する]ボタンを押せば当サイトに送信されます。
以下の文章は注意書きです。
 
名前はかならず記入してください。ハンドルネームでも構いません。
またパスワードを入力することをお勧めします。
その場合他人による *なりすまし* と区別出来るかもしれません。
さらにブラウザでクッキーを有効に設定してある場合あなたの記事は後で修正可能になります。
 
コメントスパム防止のため記事の内容を機械的にモデレート
(スパムである確率を計算)
する処理を通します。
どのような投稿であれ、たまたま計算誤差によりスパムとみなされ
秘密の場所
に収納される可能性があります。
その場合、管理人が手作業で正規の場所に移動しますのでお待ちください。
 
 
 
	
		16
		
			 owa
			 2003/07/05 19:50
							
					id: mJs8kxp1Zus
				
						
				 prob: 0.4%
			
		
	
			
		
		
					>>14 びっくりするよ
本当に;; 置いてきぼりにされちゃいました。
 nakaj さんこんにちは。書き込んでもらってとても嬉しい。
 僕が一番遅れているので、早く追い付かないとイケナイですね
 Firebird 特有の機能など全然知りませんでした。
 ストアドプロシジャはいつか使おうと思いました。
 
 
	
		15
		
			 kiyo
			 2003/07/05 11:14
							
					id: M4qDt4tUHP2
				
						
				 prob: 4.6%
			
		
	
			
		
		
					中神さんのアドバイスを元に BLOB サンプルを修正しました。
http://fzug.com/ws/fzug_prog/zopeing/pgchatbbs/showPersonLis...
 
 
	
		14
		
			 kiyo
			 2003/07/04 20:01
							
					id: M4qDt4tUHP2
				
						
				 prob: 0.1%
			
		
	
			
		
		
					>>13 計算フィールド。
スゴ、そんな事もできるんだあー、
 今日 owa さん東京へ行ってるから、
 帰って来たら、沢山書き込みあって、びっくりするよ。
 nakaj さんが来たからきっと喜ぶと思う。
 はあ、しかし BLOB を何とか DA に入れたいなあ、insert, update だけでもあれば良いのだけど、 ZFireBirdDA の方が def columns で Type が解るので簡単そうだけど。
 やっぱ私には無理かな?
 
 
	
		13
		
			 nakaj
			 2003/07/04 19:25
							
					id: p18sSGR1.u2
				
						
				 prob: 12.8%
			
		
	
			
		
		
					そうそうNowも便利ですよね。
あとInterBase特有で、私のお気に入りなのは計算フィールド。
 create table calc
 (
 qty integer,
 cost double precision,
 sumcost computed by (qty * cost)
 );
 insert into calc values(12, 250);
 select * from calc;
 QTY  COST  SUMCOST
 12   250   3000
 みたいな。
 知ってたらすみません。ね、これ便利でしょ?
 エクセルなんかいらなくなるじゃないですか。
 と思ってるのは私だけなんですかねー。
 
 
	
		12
		
			 kiyo
			 2003/07/04 18:48
							
					id: M4qDt4tUHP2
				
						
				 prob: 33.9%
			
		
	
			
		
		
					>>11 最後のスラッシュがいります?
あ、スマソ要ります。
 又一つ覚書
 現在の日付は自動ではいるのね。
 CREATE TABLE TSET
 (
 nowdate DATE DEFAULT 'NOW'
 )
 
 
	
		11
		
			 nakaj
			 2003/07/04 15:26
							
					id: p18sSGR1.u2
				
						
				 prob: 0.4%
			
		
	
			
		
		
					>>10 あ、ご事情あり、なんですね。IEの件のバグと関係あるのかと思ったので、気になっちゃっただけです。すみませんでした。
http://fzug.com/ws/
 最後のスラッシュがいります?
 >>8 BLOB SUB_TYPE TEXT は、char,varcharで扱いきれないテキストを
 格納したい場合などに使えるんですね。そういえば加藤さんの著書で
 読んだ記憶がよみがえり出しました。
 ちなみにFireBirdの制限なんですがvarchar(255)で作ったフィールドに
 郵便番号データとかつっこんでIndex作ろうとしたら拒否されたんですが、
 これをvarchar(128)とかにフィールドを縮小するとIndex作れるように
 なったりしてTable全体のバイト数とか結構制限あるみたいですね?
 詳しいことはFirebird-jpで質問したら答えてくれそうだけど。。。
 #あそこも著名人が多いのでちょっとためらってたりして
 
 
	
		10
		
			 kiyo
			 2003/07/04 15:16
							
					id: SqALsodDuX2
				
						
				 prob: 0.0%
			
		
	
			
		
		
					>>9 全然関係ないけどすごく気になったので、、。
ここで書くのもなんですが、 http://fzug.com/ws で入ると変化します。
 色々事情があって詳しくかけないので、ごめんちゃい。
 
 
	
		9
		
			 nakaj
			 2003/07/04 15:11
							
					id: p18sSGR1.u2
				
						
				 prob: 0.1%
			
		
	
			
		
		
					http://fzug.com
トップページから普通にチャットBBSへはいります。
 FZUG報告に入ってkiyoさんの発言の
 http://owa.as.wakwak.ne.jp/zope/bbs/showEntryList?MID=204
 リンクをたどるとIE6のアドレスバーに表示されるアドレスが
 http://fzug.comのままなのはなんででしょう。
 全然関係ないけどすごく気になったので、、。
 
 
	
		8
		
			 kiyo
			 2003/07/04 15:06
							
					id: SqALsodDuX2
				
						
				 prob: 0.5%
			
		
	
			
		
		
					覚書
kinterbasdb-3.1_pre4 がでてます。
 これに変更すると、今まで使えなかった TEXT型がそのまま使えるようになり、やっと、MySQL, PostgreSQL と並んだと言う事でしょうか。
 CRETAE 文が若干違う事に注意です。
 MySQL, PostgreSQL での TEXT型は、単に TEXT と書けばよかったのですが、
 CREATE TABLE TEST
 (
 A  BLOB SUB_TYPE TEXT [ SEGMENT SIZE 80  CHARACTER SET EUCJ_0208],
 B  BLOB SUB_TYPE 0 [ SEGMENT SIZE 80 ]
 )
 のように書かなければいけない。[ ]は実際には書きません。
 A は完全に TEXT 型を宣言してます。[ ] はオプションです。
 B は不定な型で何でも格納できます。TEXT としても使えるが、Firebird は一切感知しないバイナリー型と理解すれば良いのかな?
 なので、これを使う場合は使う側が読み書きするときに解っていなければいけない。たしか 0 〜 6 位までありますが、後はほとんど使わないようです。
 ちなみに、BLOB SUB_TYPE TEXT は、BLOB SUB_TYPE 1 と同等。
 CHARACTER SET はキャラクターセットで SJIS_0208, UNICODE_FSS 等があります。(まだあるけど通常3つ知っていれば良いかな)
 EUC_0208,SJIS_0208 は、2byte構成、UNICODE_FSS は、3byte
 SEGMENT SIZE は、ページの枚数みたいな物で 一ページ 64Kbyte だと 64x80 byte格納できる。と言う事だろう(と思う?)何も書かない場合は 80 が割り当てられる。
 CHAR(xx), VARCHAR(xx) は 0 〜 32767byte まで指定できるらしいのですが、
 TABLE 全体の byte 数にも制限があるようで、一個の TABLE 内で char(32767)を2個書けないみたいです。
 今解っている事を少しだけ書いてみた。
 
 
	
		7
		
			 nakaj
			 2003/07/04 14:45
							
					id: p18sSGR1.u2
				
						
				 prob: 0.0%
			
		
	
			
		
		
					kiyoさんのご紹介でここまできてしまいました。よろしくお願いいたします。
Interbase/FireBirdはDelphi使っている人には認知度高いんですよね。
 BorlandもInterBaseは組み込み用途で売っててOracle対抗とか考えて
 ないんでしょうね。
 Interbaseがオープンになったとき私はRDBを勉強し始めまして、一番最初に
 つかったのがInterbase6でした(だって社内システム作るにもお金ないし、
 出してくれないから勝手にヤフオクで中古PC購入してLinux入れて、Delphiだけは買ってもらった)
 Zope+FireBirdだったらインサートするだけでも
 ストアドプロシジャー書いて結果を戻り値を貰う様に書くとすごくZOPE側のプログラムがコンパクトで楽になります。
 (大概、インサート結果とかアップデート結果とか知りたいから)
 もしまだストアドプログラムをされていなければぜひお試しください。
 あ、ちなみに私はPythonもRDBもスキル低いです。だれか中神さんの
 投稿に答えて欲しい。。。
 
 |