VistaでJIS X 208文字しか入力させないようにする方法
少し遅いですが、今年も始まりました。
暗いニュースが多いですが、下を向かずに出来ることからがんばりましょう!
今年一発目はVistaで追加されたサロゲートペアなど文字問題に対応するために
IMEのプロパティ設定で入力文字変換を制御できる機能です。
上記の変換文字制限オプションを設定することで可能となりますので、
ビジネスアプリなど制限したい時に威力を発揮すると思います。
少し遅いですが、今年も始まりました。
暗いニュースが多いですが、下を向かずに出来ることからがんばりましょう!
今年一発目はVistaで追加されたサロゲートペアなど文字問題に対応するために
IMEのプロパティ設定で入力文字変換を制御できる機能です。
上記の変換文字制限オプションを設定することで可能となりますので、
ビジネスアプリなど制限したい時に威力を発揮すると思います。
たまには政治的な話題でもって、ことで管理人の勝手な日本将来ビジョン
不況になってアメリカを始め各国とも財政支援をおこなっているが、
日本も同じくして来年度予算が大凡決まってきた、今後の日本がとるべき道は?
超少子高齢化+人口減少がこのまま進めば理論上は日本人は世の中からいなくなってしまう。
これは唐突過ぎるが、その前にもっと大きな問題が起こることが簡単に想像できる。
・労働者人口が減ることにより税収が下がる
・人が減ることにより地方・農村部から崩壊が始まる
そうなると?
・2008年12月現在、国としてこれだけの借金(800兆円以上)がある
・税収が減っているにもかかわらず、相変わらず毎年借金している
・初めは地方が抱えている借金から返せなくなってくる(夕張など)
・国の借金が増える、でも税収は上がらない
(相変わらず身の丈に合っていない政治・・・・この話題は今回はスルー)
労働者人口が減ることにより起こりうる問題点
・年金制度は現役世代が引退世代を補う形(なんでこんなスキームに
したのかは置いておいて)で成り立っているがこれが崩壊する
・物を買う人の絶対数が減ってくれば国内向け産業も減っていく
・人口が減ることで土地など不動産の価格が下落の一途をたどる
・人口が減って車での移動も少なくなると道路なども必要が無くなる
(必要の前に維持が出来なくなっていくだろう)
・色々な生活必需品の絶対数が減ることにより全ての産業が衰退していく
・世界から見ても日本の強さや信用が下落していく
・労働力が減るので国の借金が返せなくなり国が破綻する
(その前に預金封鎖か?)
上記の書いた状態を改善する為に色々と方法もあろうと思うが、
労働者人口が増えない限り、国の勢いは好転しないと考えている
その理論で考えると、たとえ来年から出生率が5倍になっても
現在、1歳から20歳までの人口が変動することはない。
答えは一つで移民の受け入れを進めることが必要になる。
移民の受け入れはデメリットももちろんあるだろうが、理想は優秀な人材を日本で
受け入れる体制をつくることを早急に進めるべきだと私は考える。
これも覚書、前にもくらった記憶が(苦笑)
ストアドからOutputされた値をCommandItemで受け取ったら、Connect Close後にしか
中身が見えないことに注意!
' Assumes that connection is a valid SqlConnection object.
Dim command As SqlCommand = New SqlCommand("SampleProc", connection)
command.CommandType = CommandType.StoredProcedure
Dim parameter As SqlParameter = command.Parameters.Add( _
"RETURN_VALUE", SqlDbType.Int)
parameter.Direction = ParameterDirection.ReturnValue
parameter = command.Parameters.Add( _
"@InputParm", SqlDbType.NVarChar, 12)
parameter.Value = "Sample Value"
parameter = command.Parameters.Add( _
"@OutputParm", SqlDbType.NVarChar, 28)
parameter.Direction = ParameterDirection.Output
connection.Open()
Dim reader As SqlDataReader = command.ExecuteReader()
Console.WriteLine( _
"{0}, {1}", reader.GetName(0), reader.GetName(1))
Do While reader.Read()
Console.WriteLine( _
"{0}, {1}", reader.GetInt32(0), reader.GetString(1))
Loop
reader.Close()
connection.Close()
Console.WriteLine( _
" @OutputParm: {0}", command.Parameters("@OutputParm").Value)
Console.WriteLine( _
"RETURN_VALUE: {0}", command.Parameters("RETURN_VALUE").Value)
SQLServer2000でDEFAULTカラムをalter tableする場合、
制約として宣言されてしまうので、まずは制約を削除する必要がある。
Oracleなどでは確か、カラムのプロパティ情報として持っているので
そのまま、Dorp出来たと思う。
クエリアナライザから「DF__hoge_tbl__hogecol__xxx」を消してもよいが
GUIが使用できない場合に「DF__hoge_tbl__hogecol__xxx」の「xxx」の部分が
分からないので確認する方法は以下となる。
(注意:別の方法があれば教えてください(汗))
まずは以下のようなSQLを投げると
ALTER TABLE hoge_tbl ALTER COLUMN hogecol INT
メッセージ 5074、レベル 16、状態 1、サーバー HOGEDB、
行 1オブジェクト ‘DF__hoge_tbl__hogecol__xxx’ は 列 ‘hogecol’ に依存しています。
これで名前が分かるので、このキーを
ALTER TABLE hoge_tbl DROP CONSTRAINT DF__hoge_tbl__hogecol__xxx
あとは好きにして(笑)
下のコメントついでに2005の処理
2005からはTry~Catchっぽくなってる
(2000方式でももちろんOK!)
BEGIN TRY
BEGIN TRANSACTION --トランザクションの開始
--SQL文1
COMMIT TRANSACTION --トランザクションを確定
END TRY
--例外処理
BEGIN CATCH
ROLLBACK TRANSACTION --トランザクションを取り消し
PRINT ERROR_MESSAGE() --エラー内容を戻す
PRINT 'ROLLBACK TRANSACTION'
END CATCH