
RDBC = Ruby Database Connectivity.

ˤե뷲ϡRDBCΤδñʸܤǤ(ȻפäƤޤ)

RDBCRuby Database Connectivitỵޤ
̤̾ꡢJavaJDBC
Τ褦ʤΤܻؤƤơޤ̤äƤޤ
饹᥽åɤ̾⡢ȤäݤƤޤ
ʤΤǡRDBCȤäDriverä¤ꤷ
פäȤJDBCѤζʽRDBCؤ뤫Τޤ
(餯勵JDBCѤζʽΤۤɤǤ礦())

ǤϼºݤDatabaseС³뤿BridgeȤ
OracleѤPostgresѤBridgeѰդƤޤ
Bridge顢prototype餷(?)ˤäƽ񤫤줿
¸Rubyåѡ򤽤Τޤ޸ƤФäƤޤ
ĤޤꡢYoshidaoracle⥸塼
matzpostgres⥸塼򡢤줾ȤäƤޤ

RDBCǤϡΥ桼ʬnewƤɬפ뤳Ȥ(ؤ)ʤǤ
¾Υ֥ȤΥ᥽åɤˤäŪnew륪֥Ȥؤɡ
ñʻϡscriptκǸ夢ľܽ񤫤Ƥ롣

RDBCSQLʸ¸ߤäƤʤ(JDBCƱ)
SQL갷Τˤ뤿˳Ƽ說饹ѰդƤǤ롣



DriverBridgeˤĤ:

BridgeϡRDBC桼ľܻȤĤΥ饹
RDBMSΤ줾Υ饹бǤǽȤ
ִ֤ġץ饹Ǥ롣ȤStatementBridge
Statement˴ϢRDBMS¦εǽľܥ
Υ饹Ǥ롣ΤRDBMS¸ν
xxxBridge饹(ȡDriver饹)˻뤳Ȥˤʤ롣
ºݤˤϡxxxBridge饹(ȡDriver饹)ϡ
RDBC1⥸塼ˤ(Ⱦü)饹
Ѿݲ뤳ȤǼ뤳ȤꤷƤ롣

ݲȤơpostgresѤoracleѤDriver





ƥ֥ȤδϢˤĤ:

RDBCƼ索֥ȤComposite饹Ȥä
ƻҴط(Фа¿)Tree롣
޼ʤаʲΤ褦ˤʤ롣

Driver
| Connection
| | ConnectionBridge
| | Statement
| | | StatementBridge
| | | ResultSet
| | | | ResultSetBridge
| | | | ResultSetMetaData
| | | | | ResultSetMetaDataBridge

BridgeϿƤȰаطǤ롣
ޤBridgeϼ̤ƤTreeLeafǤ롣

Composite#closeϡƤҤŤ롣
Τᡢĥ꡼̤closeФ겼̤Ǥ
RDBC֥Ȥ̵졢Bridge
бRDBMS꥽
(BridgeˤĤƤϡΤ褦DriverԤäƤΤ˾)

RDBCץ꽪λˤϡDriverManager
¸ߤDriverФclose򤹤Τ
ĤޤRDBC֥Ȥclose뤳Ȥˤʤ롣
桼ŪcloseԤɬפϤʤ





ToDo:

BLOB,CLOBʤɤȸƤФƤֵʡץǡ
RDBСscriptδ֤ǤȤꤹˡѰդ٤
StringpackƤޤˤƤ礭᤮Хϡ
Υǡ(եΤ褦)˾̥ХȤŤ
ɤ߽񤭤Ǥ褦ˤʤɤĤޤꡢIO˻
readwrite᥽åɤäStreamץ饹ߤ
ResultSet#getDataɬפ˱Ƥ֤褦ˤʤɤ
Stream饹RDBC(RDB)Τߤʤ̹ӤȻפ롣

ResultSet#each RubyξＱȤ¸ߤ٤Ǥ?

TOYǤʤΤ롣äƤ(^^;
Driverɬפ˱Cĥ饤֥Ȥƽ񤫤뤳ȤͭϤ

JDBC˻饹饤֥פ̾ˤƤϡ
ºݤ˼줿饹ӥ᥽åɤʤ롣

ƶ餯¾̵


20000526 NAKAMURA AKIFUMI (BXQ04723@nifty.ne.jp)

