Windowsパソコンとの戦い!from仙台ブログ内を検索する
Google
 
Web pcnet.seesaa.net

Google パックの特長
・Google が選んだおすすめソフトウェア
・無料。 トライアルでもスパイウェアでもありません
・数回のクリックですぐにご利用いただけます
googlepacks.gif

2008年05月05日

dhSQLite(メモリDB編)

データベースをメモリ上で利用する場合のコーディングサンプルです。

(1)データベース&テーブルの作成

dhSQliteM1.gif

(2)データの追加

dhSQliteM2.gif

(3)データの更新

dhSQliteM3.gif

(4)データの抽出

dhSQliteM4.gif

(5)データの削除

dhSQliteM5.gif

(6)データベースの削除

dhSQliteM6.gif

これでdhSQLiteをVBAで利用するのがわかりましたねm(__)m

今日はこの辺で。。。


皆さんの力でベスト10入りをお願いします!!
banner_03.gif

posted by たかし at 13:31 | 宮城 🌁 | Comment(0) | SEのお仕事

dhSQLite(ファイルDB編)

 データベースをファイルで保管して利用する場合のコーディングサンプルです。画像をクリックすると大きく表示されます。

(1)データベース&テーブルの作成

dhSQliteF1.gif

(2)データの追加
dhSQliteF2.gif

(3)データの更新
dhSQliteF3.gif

(4)データの抽出
dhSQliteF4.gif

(5)データの削除
dhSQliteF5.gif

(6)データベースの削除
dhSQliteF6.gif

今日はこの辺で。次は、メモリDB編です。

皆さんの力でベスト10入りをお願いします!!
banner_03.gif

posted by たかし at 13:25 | 宮城 🌁 | Comment(0) | SEのお仕事

dhSQLiteを使う前の準備

実際にdhSQLiteを利用した方法について書いていきます。

 今回は、VBAであるExcelファイル(dhSQLiteSample.xls)の配下にデータベースを格納する「DB」フォルダ、dhSQLiteなどのライブラリを格納する「DLL」フォルダを作成した構成にしました。

kankyo1.gif

 まず、dhSQLiteSample.xlsのVBエディタを開き、”DirectCOM.bas”をインポートします。”DirectCOM.basは、ダウンロードしたDirectCOM.dllと同じフォルダに入っています。このDirectCOM.basはDirectCOMを利用するための定義や汎用関数が入っているため、そのまま利用することをおすすめします。

kankyo2.gif

 次にDirectCOMを利用するための環境をコーディングします。

・Excelの起動時に「DLL」のパスを設定します。
kankyo3.gif

・次のように環境変数を操作するAPIを利用して一時的にパスを通します。
kankyo4.gif

以上でdhSQLiteが利用できる環境が整いました。

皆さんの力でベスト10入りをお願いします!!
banner_03.gif

posted by たかし at 13:12 | 宮城 🌁 | Comment(0) | SEのお仕事

dhSQLiteを使う

僕が今回利用することに決めたのは「dhSQLite」です。この時点のバージョンは1.2です。理由はVBAと親和性が高く、コーディング時の違和感が少なかったからです。また、自分のマシン以外での利用も考えるとインストーラを作成してレジストリを操作して、COMを登録してなど色々と面倒なこともあります。しかしながら、このサイトには「DirectCOM」という直接COMを利用できるツールも用意してあるからありがたいです。このDirectCOMを利用することでファイルコピーだけで簡単に他のマシンへ展開できることが分かったことも選択した理由の1つです。

<特徴>
・sqliteのバージョン 3.4.0
・ADOライク
・VB関数がほぼ網羅(IIF,Instr,DateDiff,DatePartなど)
・ユーザ定義関数可能
・FullText-TableScans
・速い(JET<SQLite、ADO<dhSQLite)
・Unicodeサポート
・In-Memory動作可能
・DirectCOM.dllを利用すると簡単に展開可能

まずは、ダウンロードしましょう。
・dhSQLite
downloaddhSQlite.gif

・DirectCOM
DownloadDirectCom.gif

dhSQLite-Demo.zipを解凍してファイルを確認するとサンプルソースとDLLが入っています。必要なファイルは2つだけです。DirectCOM.zipを解凍すると同様にサンプルソースとDLLが入っています。必要なファイルは1つだけです。あとはサンプルソースなので随時、参考にしてコーディングしましょう。

dhSQLiteを利用するために必要なファイル
・dhSQLite.dll
・sqlite3_engine.dll

DirectCOMを利用するために必要なファイル
・DirectCOM.dll

最初は、DirectCOMを利用せずにVBAの参照設定を利用してdhSQLiteを使っていました。自分のマシンでの利用だけでしたら十分です。最終的にDirectCOMを利用して開発しましたので、その手順を記述していきます。

皆さんの力でベスト10入りをお願いします!!
banner_03.gif

posted by たかし at 13:09 | 宮城 🌁 | Comment(0) | SEのお仕事

SQLiteを使おう

 最先端の職場ではあまり利用しないと想像されるVBAですが、中小企業ではExcelの利用は高く、ExcelVBAの需要もまだまだ高いものです。ちょっとしたツールを作成し、職場で利用してもらうには便利だなぁと感じています。

 先日、個人情報データ(A)と顧客名簿マスタ(B)を付き合わせ、個人情報データ(A)の顧客氏名が正しいことをチェックして欲しいという依頼がありました。(A)のデータ件数が約10万件、(B)のデータ件数が約140万件です。普通に頑張っても終わる作業ではありません。この作業が今後も随時、発生するためツール化して欲しいとのこと。また、個人情報なのでDBに保管せずに、作業の都度、(A)と(B)をテキストファイルで渡すので読み込んで処理できるように。とのお話でした。

 データ件数が巨大のため、データベースを利用してSQLで処理したいと思いました。まず、MDBを利用して処理しようと思いました。MDBにMS−ACCESSを利用してデータをインポートして、クエリを作成することにしました。数件程度のデータでテストを実施し、正常に動作することが確認できたので本番データで処理を実行しました。

 結果は、NGでした。問題点が2つ。1つは、インポートしたデータ件数が途中で終わっていること。もう1つは、処理時間がかかりすぎること。インポートは手動でMS−ACCESSから実行すると正しく動作するので、コードから実行した場合の何か問題があるのでしょう。処理時間は、約2時間くらいかかりました。

 色々と粘りましたがMDBファイルのサイズがどんどん膨れ上がり、あまり進展が望めないので他の方法を探すことにしました。MDBファイルのように簡単に扱え、クライアントで十分のフリーのDBMSはないか?と・・・。そこで見つけたのが「SQLite」でした。


 


SQLiteの情報は少ないです。あまりメジャーではないようですね。それもVBAで利用するという奇特な方は少ないようで、さらに少なくなります。まずは、情報集めから開始です。

(1) SQliteの特徴

・サーバ不要、軽量
・ライセンスはパブリック・ドメイン
・SQL92サポート(完全ではない)
・トランザクションサポート
・最大サイズ 2テラバイト

(2) SQLiteサイト

こちらから

(3) COM Wrappers/VisualBasicDLLs

・SQLitePlus

・dhSQLite

・SQLiteDB

・SQLite3VB

・LiteX

・SqLite2X

他にもありますが一部リンク切れもありました。

(4) ツール

・SQLite ControlCenter

・SQLite Database Browser

(5) SQLiteが認識できるSQL

こちらから

(6) 役に立つサイト

・rakutoネット

・MS Access庵

今日はこの辺で。また!

皆さんの力でベスト10入りをお願いします!!
banner_03.gif

posted by たかし at 13:00 | 宮城 🌁 | Comment(0) | SEのお仕事

広告


この広告は60日以上更新がないブログに表示がされております。

以下のいずれかの方法で非表示にすることが可能です。

・記事の投稿、編集をおこなう
・マイブログの【設定】 > 【広告設定】 より、「60日間更新が無い場合」 の 「広告を表示しない」にチェックを入れて保存する。


×

この広告は1年以上新しい記事の投稿がないブログに表示されております。