
前回の記事では、
64bitシステム
において、Shift JIS形式のCSVファイルを読み込んで、SQL-Server 2008にテーブルとしてデータを送り込む処理を作ってみました。今回は、その処理の中を掲載させて頂きます。
処理は、手順ごとに、複数のWindows Power Shellの関数に分けて作ってあります。
ちなみに、64bitシステムで実行するので、調子に乗って数値をInt64で扱ってみました。
CSVファイルは、もちろんShift JIS形
式ですが、隠しパラメータでUnicode(UTF-8)にも対応してます。CSVファイルの一行目は、ヘッダとして認識します。
CSVデータを読み込むのは、System.IO.StreamReaderクラス。
文字コードをShift JISにしてデータを読み込んでもらうわけです。
CSVファイルは、すべてテキストとして読み込み、SQL-Server 2008のテーブルも全項目がnvarchar形式。データ長は、CSVファイルの各要素ごとに最大長を求めてそれにしております。
SQL-Server 2008との連携は、
ADO.NETのクラスを介して行う事が出来ます。特に何もしなくても標準でこのクラスが使えるわけで、Windows Power Shellやっぱいいなぁ・・・。
接続は、Data.SqlClient.SqlConnectionクラスで行い、
作成したクエリーを実行するには
Data.SqlClient.SqlCommandクラスです。
ちなみに、本当は先頭にSystem.が付くのですが、これは省略して書いて良い事になってるんですね。
うーん。Windows Power Shellは、.NET Frameworkと一体化しているとは言え、本当に.NETプログラミングの知識が応用しまくれるのが
感動的なところの一つ。もちろん、コマンドシェルという構造上、
完全にそのままではないですけれど、まぁそりゃそうですね。クラスをインスタンス化するキーワード一つとってみても、newではなくてNew-Objectだったり、それなりに違いはありますけど、マイクロソフトやるなぁという感じですね。