2012/01/23

VB.NET StringBuilderクラス

http://msdn.microsoft.com/ja-jp/library/ms172824.aspx

"StringBuilderクラスは、多くの文字列を結合する場合、&= 演算子よりも効率的です。"



"Stringと異なり、StringBuilderを利用すると文字列連結時にオブジェクトの再作成を行わないため、高速な文字列操作が行える。"

・StringBuilderは、クラスであるため、使用前にNewキーワードが必要となる。
・String型は、文字列の内容が変わる度にオブジェクトを再作成する。
・StringBuilderは、文字列の内容が変わってもオブジェクトを再作成することはない。
・StringBuilderを初期化する場合には、オブジェクト名.Length = 0とすれば良い。

とのこと。

2012/01/12

過程とかって物をつくるときやっぱ大事なんだな、、と思わされた件

少し前のGigazineさんの記事で多分結構読まれている記事なので、いまさら、、という感じではあるが、すごく納得した部分があったので一応メモ。

日本では設計段階で車の模型は粘土で作るけど、イタリアの車は木みたいな硬い素材を使って模型を作るらしい。

堅い素材でものを作るとできあがるものも実は堅く見える。粘土みたいな柔らかい素材でものを作るとできあがるものも実は非常に柔らかく見える。

のだそうだ。なるほどだ。

何を使って考えるかって、実は結構大事で、それが最終的な形にまで反映されるのかもしれない、、と考えさせられた。

そういえば、最近PCばかりじゃなくて考えるとき紙と鉛筆をつかって考えないと考えがまとまらないことがあったりする。

あとは紙で読んだものとディスプレーを通して読んだものって情報の残り方がなんか違う。

もしかしたら、単に眼精疲労がすさまじくなってきたということなのかもしれないけど、、、なんか関係がある気がした寒い冬の朝。

2011/08/23

SQLServer DateTime型のフィールドの値の日付を取得

SQLServer DateTime型のフィールドの値の日付を取得するとき。SQLServerではDATE_FORMAT()などが使えないので以下のようにするととれる

select CONVERT(NVARCHAR, TBL_AAA.FIELD_DATETIME, 111) from TBL_AAAA


3つ目の引数で、取得する形式を指定。'111'を指定した場合、'yyyy/mm/dd' の形式で取得できる。




2011/08/08

オートナンバーのフィールドの値を取得

オートナンバーになっているフィールドの値をINSERT直後に取得したい場合

insert into TBL_AAAA(field_a, field_b, field_c) values ( 123, 564, 'sss' ) select SCOPE_IDENTITY() as new_id


とすれば、new_id として値を取得できる。



2011/07/21

外部結合で参照列が複数あるSQL

テーブルAには

ID | NAME
001 | 太郎
002 | 次郎
003 | 三郎


がはいっていて、

テーブルBには、テーブルAのIDを参照して

ID | GROUP_NAME | FRIEND_ID
001 | さくら | 003
002 | ぽぷら | 002
003 | いちご | 001


のようにはいっている。

テーブルBからセレクトするとき、テーブルAを結合して、IDとFRIEND_IDの二つの列に対応するNAMEと取得したい場合いかのように書く

select
テーブルB.ID, テーブルB.GROUP_NAME,テーブルB.FRIEND_ID,T1.NAME as HoninName, T2.NAME as FriendName
from テーブルB
left join
テーブルA as T1
on T1.NAME = テーブルB.ID
left join
テーブルA as T2
on T2.Name = テーブルB.FRIEND_ID