2012年8月27日月曜日

SQLiteをC言語で使う

Windows上のVisual C++ 2010でSqliteでのアプリを作りました。

そのやり方は大きく2とおり存在します。
1.DLLを用いる

やりかたはこれ
http://dcravey.wordpress.com/2011/03/21/using-sqlite-in-a-visual-c-application/
結論から言うと
DLLからLIBを作成してプロジェクトにはそれを入れる
いれるときには
#pragma comment(lib, "sqlite3.lib")
として読み込ませる。
include ヘッダーは
#include "sqlite3.h"

2.ソースを直接プロジェクトに入れる

これのやりかたは
http://www.sqlite.org/sqlite-amalgamation-3071300.zip
をダウンロード+解凍+プロジェクトに追加
もしMFCを使っているならそのままビルドするとプリコンパイルヘッダーのエラーがでます。
のでプリコンパイルヘッダーOFF
Visual C++ 2010だと
構成プロパテイー>C/C++->プリコンパイル済みヘッダーで使用しないを選択してください

include ヘッダーは
#include "sqlite3.h"

あとはひたすらコーデイング

この次のポイントとしては高速化をどう実現するか?というのがある。
これも大きく2とおり存在する

DBの削除、追加を早くするには
sqlite3_exec(Db, "BEGIN", NULL, NULL, NULL);
処理
sqlite3_exec(Db, "COMMIT", NULL, NULL, NULL);
のように処理をBIGIN/COMMITで包む

もうひとつDBの検索を早くするには
INDEXをDBに追加

※今あらためて考えると2はソースを別プロジェクトに一旦入れてLIBに変換してプロジェクトに入れるのがよかったと思う。これでプリコンパイルヘッダーの問題もなくなるし。次はそうします。

0 件のコメント:

コメントを投稿