[SML 7140] Re: Smalltalk システムでのデータの保存、データベースについての質問
鈴木 藍
tar_zcvf @ yahoo.co.jp
2006年 2月 25日 (土) 17:22:01 JST
鈴木 藍です。
> Oracle も試してみようと思ったのですが、テストコードが見つからなかったのでまた今度。
投げ出さないでやりました。もう解決済みのスレッドですが、一応ということで
失礼します。
OracleEXDI (と、話題にあがったサイベースのドライバ CTLibEXDI) とその他
データベースに関する文書が $VISUALWORKS_HOME/doc/DatabaseAppDevGuide.pdf に
あります。
あと、データフォームにデータベースのデータをマッピングするツールや
クラスにデータをマッピングするツールの話が書いてありました。
読むのが面倒で読んでません。
さて、Oracle データベースとの接続は以下のコードで確認できました。
----------------------------------
| aConnection aSession aResultList resultData |
aConnection := OracleConnection new.
aConnection
username: 'elbereth';
password: 'elf';
environment: 'orcl'.
aConnection connect.
aConnection begin.
aSession := aConnection getSession.
aSession prepare: 'SELECT name, essential FROM artifact'.
aSession execute.
aResultList := aSession answer.
"aConnection commit"
resultData := WriteStream on: String new.
aResultList columnDescriptions do:
[:columnDescription |
resultData
nextPutAll: columnDescription name;
tab;
nextPutAll: '|';
tab].
resultData
cr;
nextPutAll: '----------------------------------------------------------------';
cr.
aResultList upToEnd do:
[:row |
row do:
[:field |
resultData
nextPutAll: field;
tab].
resultData cr].
Transcript
cr;
show: resultData contents
----------------------------------
実行結果は以下の感じ。
----------------------------------
NAME | ESSENTIAL |
----------------------------------------------------------------
Excalibur long sword
Magicbane athame
----------------------------------
他にも、引数をとる SQL や PLSQL のコードを書いたり呼び出したりもできるみたいです。
これも他の言語のドライバ同様、引数は (?,?) みたいな形でとります。
OracleEXDI のパーセルにバンドルされている、Oracle データベースの
データ型をあらわすクラス Date, Double が気になりますが、状況にもよりますけれど
まあ Java のように型変換で鬱になったりはしないのではないかと(願っています)。
ORMPB.
(O/R Makes Prgrammers Blue.)
//鈴木 藍
-- spiral @ soulhack.net
SML メーリングリストの案内