[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 メーリングリストの案内