PostgreSQL Client for Squeakの動きがよくわからない。。。
実は、2週間以上悩んでいたりします。。。
ORマッパー調べたりとかいろいろしましたが、結局クエリを書くことが多いので、
シンプルなものにいきついて、PostgreSQL Client Squeakを使うことにしました。
ほんとに情報がなくて、ソース読みまくったんですが、なかなか理解できず。。。
(TestPGConnectionとかかなりよんだんですが、機能網羅されてないような。。。)
以下の方を参考にいろいろ調査。
(ほんとに参考になりました。md5のモジュールが原因なことがわからず、最初接続すらできなかった。。。)
http://d.hatena.ne.jp/chobie/20080411/1207879042
同じように、モジュールはインストール済み。
パッケージローダで
・PostgreSQL Client for Squeak
・Cryptography Team Package
をインストールしました。
sql := 'select * from public.sales'. arg := PGConnectionArgs hostname: 'localhost' portno: 5432 databaseName: 'sql_drill' userName: 'daisuke' password: '******'. "一応パスワード" con := PGConnection new connectionArgs: arg. con startup. result := con execute: sql. con terminate.
inspectでおぉー!!つながってると感動してから、同じコードを実行。
( result resultSets at: 1) rows do: [ :each | Transcript show: (each rawData at: 2); cr.].
おぉー動いている×2♪♪
と、ここまでは、先駆者の方がいらっしゃるので、そりゃそうだ。
でも、Dictionaryでかえってきてくれないので、名前アクセスができない。
ここから時間がかかってなんとか、Dictionaryでかえってきてくれる方法を探す。
data := result rows first dataKeyedByFieldName.
コードはっつけては探す日々でした。。。
よしよしとおもってでは、イテレータ使わずにループのお勉強と思ってからがさらに土つぼ。。。
data := result rows at:1 dataKeyedByFieldName.
だとMessageNotUnderstoodとエラーがかえってきます。
はて?
data := result rows at:1. data := result rows first.
をinspectすると、まったく同じものにしか見えないんですが。。。
なにがおかしいんでしょうか?どなたかご教授ください!!m(_ _)m
1 to: result rows size do:[:index | result rows at: index dataKeyedByFieldName].
こんな感じでアクセスできるのかなぁーっとおもってるんですが。。。
他に、こんな方法があるよみたいなのもありましたら、お待ちしております。
なかなか初心者にはハードルが高い。。。( - -;)
勉強会に参加するレベルには到底達していない。。。
Smalltalk合同勉強会@名古屋に参加したいんだけどな。。。
せめて、DBアクセス関係が理解できるようになってから。。。