DBからとってきたデータをAssociationにチャレンジ(解決編?)

associations do: と associationsDo: の違いについて、id:sumimさんからコメント頂きました。(ありがとうございます!!)

associations do: と associationsDo: は、やっていることは同じなのですが、作業内容が違います(でも得られる結果は同じです)。associations do: は、いったん辞書に associations を送って返されてきた「辞書内の全アソシエーションを要素とする配列」に do: [...] というメッセージを改めて送っています。一方でassociationsDo: は、辞書に直接 associationsDo: [...] というメッセージを送っています。段階を踏むか、一気にやってしまうかの違いとみることもできます。

なるほど。。。処理コストについても若干違うのかな?まだ、ベンチの取り方がわからないのですが、後々調べてみたいと思います。

そして、DictionaryをAssociationにする方法も、id:sumimさんからご教授頂きました。

辞書に associations を送信すると辞書を構成する全アソシエーションを要素にした配列が得られます。ひとつ前のエントリーでは、この配列に do: [...] を送ったわけですが、代わりに asOrderedCollection を送れば、順序付きコレクションに変換できます。

なるほど。Associationオブジェクトにしないといけないとばかり思っていましたが、OrderedCollectionを送るのか。。。

ということで、

データの取得を実施。

aData := result rows collect:[:each | each dataKeyedByFieldName associations asOrderedCollection].

do it して、inspectすると。。。

an OrderedCollection('productid'->21 'customerid'->3 'saledate'->1 September 2003 'quantity'->5 'employeeid'->19 'saleid'->1)

おぉーなってる×2。 なかなか奥が深い。。。
でも、あんまりこの形にする意味が。。。こういう形式はどういう場面で使うと良いのだろう???と悩んでいたところ、
umejavaさんからコメントを頂きました。

Dictionaryのまま持ち回っても全然問題ないと思いますよ(というかそのほうが普通だと思います)。あくまで違いを述べてみただけなのであまり気になさらずに。

そうですか!!自分がズレているのかと思っていましたが、良かった。でもいろいろ勉強になりました。

umejavaさん、id=sumimさんいろいろとご丁寧にありがとうございました!!

いろいろTry & ERR (ERRばっかしですが。。。)していきたいと思います。