お世話になっております。 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を作って繋げればいいだけか。「個々の」の一つに ネット経由の奴があればいい。