ページ

2010年12月5日日曜日

C#勉強中 SQL Server その2

気付いてみると前回から1ヶ月経過していますが、VS経由でSQLサーバにアクセスしてみましょう。前の時はSQLサーバがいつの間にか消えていました。SQLサーバのインストールにずいぶんと時間がかかりましたが(あのサイズ!!)、作業再開です。

なお、レジストリかどこかにゴミが残っていたようで、SQLServerのインスタンス名、デフォルトのインスタンス名’SQLEXPRESS’が使用中になっていましたので、’SQLEXPRESS1'で設定しました。VSから接続する時のデフォルト名も’SQLEXPRESS'になっていますので、合わせて名前を変えないと繋がりません。

ゴミエントリが消せればいいのですが、とりあえずは名前の変更で対処。でも後々面倒が。

VSからの接続

VSからDB(ファイル)を生成してデータ接続するには、「ツール」→「データベースへの接続」で「接続の追加」ダイアログを開いて、そこで設定します。「接続の追加」で、

データソース     Microsoft SQL Server データベース ファイル (SqlClient)
データベースファイル これから作るDBファイルのパス名を設定
サーバへのログイン    Windows認証

とします。ここで、インスタンス名は以前に登録し現在は残っていないSQLEXPRESSがデフォルトになっていますので「詳細設定」で名前を変更(上のSQLEXPRESS1)する必要があります。

テスト接続は、ファイルが存在しない場合には確認できませんので、いきなり「OK]ボタンを押します。DBファイルの作成の確認ダイアログがでますので、確認して続けます。これでDBファイルに対するデータ接続が生成されてVSから参照可能になり、データベースエクスプローラに出てくるようになります。

DBのスキーム定義

次はDBのスキーム定義を。重複チェック用のDBを作ろうとしているので、ファイル情報をDBに格納することになります。無論ユニークキーはファイルのパス名。UNIXだとデバイス番号+iノード番号というユニークキーがありますが、Windowsだとパス名しかないでしょう。で、関連したファイル情報、日付、サイズ、あたりも登録しておきたいですね。そして、重複チェックで使用するファイルのハッシュ値も。重複チェックはハッシュ値ベースでやろうと思っています。

さて、では、どのようなハッシュ値を使うか?計算量、結果(ハッシュ値)のサイズ、そしてなにより、実装の簡単さで選びたいものです。というわけで、次は .NET でサポートされているファイルハッシュを調べてみることにします。

0 件のコメント:

コメントを投稿