13 January
2005

ZKInterbasdbDA-0.3.0

早速使わせてもらってます
[Zope] 

テストのDBをまず作りました。
まず以下のようなテーブルを作る

CREATE TABLE "TB1"
(  "PID"    INTEGER,  "F1"    INTEGER,  "F2"     INTEGER);

プロシジャーを作ります。
二つの値を受け取りTB1テーブルにインサートし、最新のインサートされた値を返す、あまり意味はないプロシジャーですが。
Windowsのコマンドラインからの isqlでも以下のようにset termすればprocedureを作成できると思います。>中神さま

SET TERM ^ ;
/* PROCEDURE内で ; を利用するためSET TERMで ^ に変更します */

CREATE PROCEDURE "P_INS_TB1"
(  "V1" INTEGER,  "V2" INTEGER)
RETURNS
(  "R1" INTEGER,  "R2" INTEGER)
AS
begin
insert into tb1(f1,f2) values(:v1, :v2);
select f1, f2 from tb1 where pid = (select max(pid) from tb1)
into :r1, :r2;
suspend;
end
 ^

SET TERM ; ^
COMMIT WORK;

ユニークキーを作るためのジェネレータをつくります。

CREATE GENERATOR "GEN_PID";

上記generatorを利用するためのトリガーを作ります。

CREATE TRIGGER "TRG_PID" FOR "TB1"
ACTIVE BEFORE INSERT POSITION 0
as
begin
  new.pid = gen_id(gen_pid,1) ;
end
 ^

COMMIT WORK ^
SET TERM ;^


そして値をいれてみて動作を確認しました。
IB,Firebirdではselect文でprocedureを利用できるというユニークですがわかりやすい機能があります。

SQL> select * from p_ins_tb1(1,2);

          R1           R2
============ ============

           1            2

SQL> select * from p_ins_tb1(3,4);

          R1           R2
============ ============

           3            4

SQL> select * from tb1;

         PID           F1           F2
============ ============ ============

           1            1            2
           2            3            4

というような感じになります。プロシジャー文内でコミットしていないのでデータの信憑性はないわけですがテストケースとして作ったのでご容赦。

さてこうして作ったデータベースをbrowseタグでみてみますとgenerator, procedureは無事表示できました。
非常に便利です。
ただtriggerだけが表示されませんでした。
ところがexamplesのなかのemployee.fdbに関してはtableのツリー以下で表示できています。
(FireBirdインストール時につくられるサンプルDB)

キャプチャしました


それとZopeを再起動したときにDAのコネクションがcloseされてしまうようです。
ただこれはもしかすると私の勘違いかもしれません。そうたびたび再起動するわけにいかない場所で作ってしまったため、ぜひどなたかテストしていただけないでしょうか?


super serverの場合サーバのリスタートは /etc/init.d/xinted restart わからなくっててんてこ舞いでした。
トリガー、引き金に見えますかね、、、、。

trigger_inactive.gif


trigger.gif

Posted by shinobu at 19:50 | Comments (1) | Trackbacks (0)

Mary Chapin Carpenter [10,000 miles]

「グース」のサントラってあるのかな

先日息子とTVをみていたら洋画がうつった。
動物ものが息子はとても好きなのでなんとなくつけていた。
ところがこれが見出すと結構面白い。
なんといってもCGを使った撮影をまったく(ほとんど?)していない。1998か1997年位の作品なのに。

ストーリ的にはグース、(グースってかも?雁かな、)の卵を拾った少女が周囲を巻き込んで大人になっていくみたいな話。
そのなかで軽飛行機(グライダーにエンジンをつけたようなもの、鳥人間コンテストに出てくる飛行機に小さなエンジンをつけたくらいのいめーじ)と一緒に雁の群れが飛ぶさまは感動を覚えた。
しかもあきらかに実写だ。
CGも邦画で使われていて一番やだと思ったのは刑事もののミサイルシーン、あきらかにリアリティが
欠如してて迫力もなく安っぽいだけだった。
ああいうのをみるとCGなんか、、って思ってしまう。
グースの製作者たちはそれをわかっていたんだろうな。
「FLY AWAY HOME」が映画の本当のタイトル名。

あ、何が書きたかったかというとこのなかで「Ten thousand miles.....」と歌っていたのがMary Chapin Carpenterだったんですね。
映画みてるときは「いい声だなー」って。あとでネットで調べてわかりました。
彼女はもう10年以上前に新宿のHMVかなんかで輸入レコードを視聴して買ったアーティストでした。
たぶん日本ではいまだにマイナーでしょう(なのかな?)。
そのころは結構はまって輸入版を買いあさりました。
輸入版の視聴で買うと家に帰ってからがっかり、ということが私はおおかったので嬉しかった。
そんな記憶とともに本当に懐かしかったです。

http://www.amazon.co.jp/exec/obidos/ASIN/B0000DJZ7V/qid=1105618987/sr=1-5/ref=sr_1_10_5/249-1504066-5579532

amazonで売ってますね。基本的に低い声の女性ボーカルにわたし弱いのね。ナッシュビル、カントリー系でね。


Posted by shinobu at 21:50 | Comments (3) | Trackbacks (0)