お世話になっております。 A.中村です。

On Wed, 22 Sep 1999 15:01:28 +0900
Takayuki SAKISIMA <sat / moon.letter.co.jp> wrote:

>PostgresをRuby on Windowsから使うためには、Rubyの最コンパイルが必要なのではないかと思います。

「Rubyの」再コンパイルは要らないことが多いと思います。
動的ライブラリ(soとかDLLとか)が使える環境では、
身代わり(笑)の動的ライブラリ「の」再コンパイルというか、
コンパイル&インストール&Rubyの再立ち上げ(って
スクリプトのインタプリタに「再立ち上げ」という
言いまわしは似つかわしくない事が多いと思うけど)で
事足りるでしょうから。

でもコンパイルの必要性という意味では同じ事っすね。

>一般的に、DB接続のモジュール作成のために、C言語で記述しなくてはいけない個所があるのでしょうか?

JDBC勉強1日目の成果(笑)ですが、
JDBCのドライバってのは4種類あるんだそうです。
その分類ですが、なんてゆーか「直結型」と「ネット経由型」が
あるらしいです。

ネット経由型は、サーバーのほうにDBMS種類依存部分の
インターフェースが存在して、そことお喋りできれば済む
という意味らしく、手元のプログラム(Rubyならscript)のほうには
その片割れの(当然共通の)通信機能さえあればあればいい、
ということのようです。

でもまぁネット型でも、DBMS種類依存部分が
クライアントには要らなくなるものの、
かわりにサーバーには必要なようで。

直結型は上記の意味での「コンパイルが必要な」ドライバ
ということになるかと思います。言いかえれば、DBMSと
通信する機能は、このドライバの中に内蔵されてるってことに
なるのかなと。


そういや、「リモートのRDBMSと喋るための通信プロトコル」の
一般的な規格って、存在しましたっけ?RDBTP(笑)なんてのが。

そんなものが無いならば、どっかににRubyとC(笑)とを
橋渡しするコードを直に書くことになるんじゃないかと思います。
ないしは、上記の意味でのネット経由型のドライバに相当するものを
書いてしまうか、どちらかが。

#RubyServletってアリなんでしょうか(笑)

JDBCについては、Javaの「セキュリティの壁」の都合も
あるらしいです。ローカルのDBリソースというかそもそも
DBMS関係のシカケ一切と、アプレットとは、喋る事が許されて
いないので、ネットの向こうに希望を託すためにも、
ネット経由型が必要らしいです。
で、Rubyだとあまり関係ないんじゃないかな?という気も、しました。

>たとえば、Windows版は、共通部分だけ実行モジュールにリンクしていただければ、差分の部分はRubyで書かれるでしょうから、Windowsからあらゆるデータベース接続が可能になります。

あ、これは直接的には難しいんではないかと思います。RDBMSの
実装の細かい部分が各社違うわけで、そういう処まで
いじるのは、やっぱりCでないと無理じゃないかな。

皆さんが既に書かれたRubyからいじれるインターフェースを
更にラップするみたいな書き方は、殴り殺されるでしょうか?(^^;


>汎用的で一般的なものと、専用的なものの2種類があることが良いと思います。

結局、汎用と専用って、上記の言葉に翻訳すれば
直結か否かという差ということになる…んですよねきっと?

なんだろなあ。
RDBC1(笑)モジュールにConnectionクラスがあって、
サブクラスにLocalConnectionクラスとRemoteConnectionクラスが
あって、Localのほうは個々の直結モジュールとお喋りして
RemoteのほうはRubyServlet(笑)と喋って…

いや、クラス分ける必要もないのか。個々のモジュールとの
Adaptorを作って繋げればいいだけか。「個々の」の一つに
ネット経由の奴があればいい。