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

On Fri, 24 Sep 1999 11:54:01 +0900
hisanori / sitc.toshiba.co.jp wrote:

> 実はここまでは合意できてるのかしら。とすると僕の先の投稿は釈迦に説法で

属性っていうことにするの、好きなもので(^^;

>プロパティcon.sql = "select ..."result = con.exec引数result = con.exec("select ...")

とゆーわけでJDBCの場合、conとresultの間に
statementというオブジェクトが介在する、という
構図のようです。

プロパティ(じゃないけど本質同じ)
statement = con.createStatement("select ...")
result = statement.exec(nil)

引数
statement = con.createStatement(nil)
result = statement.exec("select ...")

こんな感じでしょうか。これならどっちの世界観も問題なく
吸収できますね。conとstatementの両方でsqlを与えなければ
(または両方で与えれば)例外にしちゃえばいいのかな。

sqlという属性をconに持たせるのはあまり良くないと思います。
1つのconに対してただ1種類のsqlしか使わないということは
稀でしょうから、conに与えたsql「を」頻繁に(事実上
sqlを呼ぶごとに)差し替える羽目になると思います。
それではプロパティっぽくする意味がない。
そういう意味で、conとresultの間にstatementなるものを挟んだ
JDBCのやりかたは、たしかに(^^;参考になります。

DriverManager=>Driver=>Connection=>Statement=>ResultSet


あ。delphiでいえばconはTDatabaseにあたりますね。
トランザクション操作メソッドはこのクラスにあります。
一方delphiはResultSetに相当するオブジェクトが
欠落しています。それこそRADでGUIなコンポであるため
なのでしょうね。

結局JDBCには「足りないもの」が特になくて一般性がある
みたいなので、RDBC(笑)のお手本にするのに丁度いい
ってとこでしょうか。


#-projectも入ってみます。