sqlserver 大小文字の区別
SqlServerはデフォルトで大小文字を区別しないらしい。
no column1
1 XXX
2 xxx
select * from hoge where column1 = 'xxx'
だと両方拾ってしまう。
で、無理やり区別させるためにwhere句の最後にこのように追加する
select * from hoge where column1 = 'xxx'
COLLATE Japanese_CS_AS_KS_WS
と大小文字を区別するため、「xxx」の項目のみ取得できる。
ちなみに、以下のようなルールらしい。
・CI 大小文字を区別しない。
・CS 大小文字を区別する。
・AI アクセント、濁音、破裂音を区別しない。
・AS アクセント、濁音、破裂音を区別する。
・KS ひらがなとカタカナを区別する。半角でも区別する
・WS 文字幅(全角半角)を区別する。
sqlserver real型
SQL Serverにreal型なるものを発見。
調べてみるとfloat(24)と同じだそう。
値の範囲は
- 3.40E+38 ~ -1.18E-38、0、および 1.18E-38 ~ 3.40E+38
とのこと。
指数で書かれるといまいちよくわからん。
-3.4×10^-38~3.4×10^-38ってことであってるんだろうか?
あと、データストレージが4バイトってあるけど、この値だと4バイト超えてない??
asp.net TextBoxのReadOnlyプロパティ
TextBoxにReadOnlyプロパティを設定して、javascriptで無理やり値を設定しても
サーバ側に値が送信されずに消えてしまう、という現象が発生。
よくよく調べてみると、.netの仕様でReadOnlyのコントロールに設定された値は
前回のレスポンス返却時の値が適用されるらしい。
なので、正確に言うと、サーバ側に送信されてないのではなく
.netが値を無効にしているようだ。
ただし、Requestオブジェクトからは取得可能。
php switch文
phpのswitch文はdefaultは自動で通ってくれないらしい。
どういうことかというと
switch ($hoge) {
case 0:
echo "hoge is 0";
case 1:
echo "hoge is 1";
case 2:
echo "hoge is 2";
default:
echo "hoge is other";
}
breakが無い上記のswitch文で$hogeに0を設定しても
0→1→2と通って、defaultは通らずに抜けるみたい。
phpのdefaultは他のcaseにヒットしなかった場合のみ通過、とのこと。
VBはそもそもbreakがないし。。。。
switchの言語仕様ってややこしい。
asp.net テキストの値がクリアされない
TextBox1.Text = "";
をaspx.csで呼び出しても値がクリアされない現象が発生。
原因はPage_Initで呼び出していたため。
コントロールが初期化される前にPage_Initが実行される???
なんか良く分からないが、Page_Loadで処理を行うことで解決。