そんなソフトを作ろうっていうのは、ここのところずっと言っているとおり。
C#でこの手のプログラムを作る手順としては、
・プロバイダをMSIDXS,データソースを検索したいカタログとした、string型のコネクションリクエストを用意
・そのコネクションを引数にして、OleDbConnection型のオブジェクトを作成
・作成したOleDbConnection型のオブジェクトをOpen
・検索クエリ(SQL)文字列を作成
・Selectの対象となるテーブルはScope()。検索するレコードは、ファイルオブジェクトの持つプロパティ。アスタリスク(*)は使えない
・where句の検索条件として、検索したい文字列を引数に与えたFREETEXT関数を用いる
・作成したクエリ文字列とOpenしたOleDbConnection型のオブジェクトを引数にして、OleDataAdapter型のオブジェクトを作成
・DataSetオブジェクトを作成
・OleDataAdapter型のオブジェクトのFillメソッドに、DataSet型オブジェクトと"SearchResults"という文字列を渡す
・DataSetオブジェクトに検索結果が入るので、データグリッドなどで表示する
というステップを踏めばいけるみたい。(サンプルソースを見ながら考えただけだから、もっと短い手順でOKとか、実はこういう手順を踏むべきだとかいうのがあるかもしれない)
で、今回は前回までに出来たものをちょこっと改良した奴を公開。
ダウンロードはこちらから。
ざっとReadMe的なものを書いておくと、
・利用には.NETFramework2.0+が必要。
・バグだらけでも泣かない
・開発環境はVC#2008+WinXP(pro)
といったところ。
当然ですが、インデックスサービスが止まっていると動きませんよ。
さて、このインデックスサービスによる検索、前回はすごく速い!と思ったけど、いろいろいじっているうちにそうでもないような気がしてきた(笑)
もしかして、インデックスのパフォーマンスに関係があるのかなぁ・・・?
ここで終わりにするか、もう少し研究してみるかは、今後のやる気次第。
常駐→すぐに検索ぐらいまでにはするかな。
0 件のコメント:
コメントを投稿