思考停止するな

ネットワークとかアプリケーションとかWebとか

照合順序ってなにそれ?おいしいの?

SQLServerを扱っていると、Japanese_CI_ASとか、BINとかなんとか見かけることがあります。
で、これはなんなのかというと照合順序というらしい(すみません。それくらい知っときます。)。
照合順序ってなにそれ?おいしいの?ってことで一体なんなのか調べたので書いてみた。

照合順序とは

文字の大小関係を比較する基準を照合順序 (collation) と呼んでいる。
文字の大小関係がないと、データを並び替える場合に毎回違った並び順になる可能性がある。
そのため、照合順序の設定の違いによって並び順は異なる。
この設定により、大文字と小文字を区別するとかしないとか決まるらしい。
照合順序の設定はデータベースへの設定と、各テーブルのカラムに設定できるようだ。
ちなみにカラムへの設定は型によってできるものとできないものがある。
照合順序が設定できる型は次のものらしい。
char型、varchar型、text型、nchar型、nvarchar型、ntext 型。
数値型とか日付型とかには設定できないみたい。
設定できるのは文字列型のようだ。

データを扱う上では照合順序の設定は重要なようだ。
なにも考えずにデフォルトの設定使うんじゃなくてちゃんと考えて設定しないとね。

VBのByval、Byrefについて

どもVB初心者です。

VBでByval、Byrefという初めて聞く単語が出てきたので調べてみました。

Byval

値渡し。呼び出し先で値を変えても、呼び出し元には影響がない。
(メソッドの引数に、新たに値のコピーを作って渡す方法)

Sub Proc(ByVal tmp As String)
   tmp= "test"         ''受け取った値を"test"に変える
End Sub

Byref

参照渡し。呼び出し先で値を変えると、呼び出し元にも影響する。
(メソッドの引数に、変数そのものの参照を渡す方法)

Sub Proc(ByRef tmp As String)
   tmp= "test"         ''受け取った値を"test"に変える
End Sub

だいぶ初歩的な内容だった。。。

VBのEnumについて

どうも。VB初心者です。
最近VBの話の中でEnumっていうのが出てきたので調べてみました。

Enumとは

列挙体。列挙体を用いると関連のある一連の数値定数をひとまとめに扱うことができる。
変更する必要がない整数値をグループ化する時に使う。
Enumの値は整数値に限られる。
値を指定しない場合は、先頭が0となり、以降順に+1した値になる。
「=数値」で任意の値を設定することができる。
以下のようにして定義する。

Public Enum Washoku
    SUSHI
    ANKO
    UDON
    SOBA = 10
End Enum

上記は以下のような値になる。
SUSHI → 0
ANKO → 1
UDON → 2
SOBA → 10

もっと実用的にすると次のような使い方とか?

Public Enum  店番号
    A = 1
    B = 2
    C = 3
End Enum

GetValuesメソッド

列挙体のメンバの値を配列で取得する。

GetNamesメソッド

列挙体のメンバの名前を配列で取得する。