Sqliteラーニング-sqliteスタティックライブラリをコンパイルし、他のプロジェクト呼び出しに使用
6725 ワード
sqliteのソースコードをダウンロードします.sqlite 3.cソース、sqlite 3.hはヘッダファイルである.
sqliteを静的ライブラリにコンパイルしてから、他のプロジェクトで使用できます.このような利点は、テストプログラムをsqlite sourceに混ぜる必要がなく、コンパイルが遅く、使いにくいことです.
Sqliteコンパイル
1 vc++でwin 32 Projectを作成し、ウィザードツールで「Applicationtype」を「Static libray」、「Additional options」を「空」、「add common header file」を選択して「空」を選択します.
2プロジェクトの作成が完了したらsourceにsqlite 3を追加します.cソースコード、header filesにsqliteを追加します.h.
3プロジェクトをコンパイルします.このとき、他のプロジェクトで使用する静的ライブラリsqlite 3.libファイルが生成されました.後でsqliteデータベースを使用する必要がある場合は、sqlite 3を導入するだけです.hヘッダファイルとsqlite 3.libは使えます.
Sqliteサンプルプログラム
1 vc++でwin 32 Project sqlitesampleを作成し、ウィザードでConsoleプログラムを選択し、その他はすべて空にします.
sqliteを導入するhヘッダファイル.
2 mainのソースコードは次のとおりです.
3コンパイル実行後firefox sqlite managerをインストールして最終生成mytestを表示できます.db .
対応するテーブルが生成されました.
sqliteを静的ライブラリにコンパイルしてから、他のプロジェクトで使用できます.このような利点は、テストプログラムをsqlite sourceに混ぜる必要がなく、コンパイルが遅く、使いにくいことです.
Sqliteコンパイル
1 vc++でwin 32 Projectを作成し、ウィザードツールで「Applicationtype」を「Static libray」、「Additional options」を「空」、「add common header file」を選択して「空」を選択します.
2プロジェクトの作成が完了したらsourceにsqlite 3を追加します.cソースコード、header filesにsqliteを追加します.h.
3プロジェクトをコンパイルします.このとき、他のプロジェクトで使用する静的ライブラリsqlite 3.libファイルが生成されました.後でsqliteデータベースを使用する必要がある場合は、sqlite 3を導入するだけです.hヘッダファイルとsqlite 3.libは使えます.
Sqliteサンプルプログラム
1 vc++でwin 32 Project sqlitesampleを作成し、ウィザードでConsoleプログラムを選択し、その他はすべて空にします.
sqliteを導入するhヘッダファイル.
2 mainのソースコードは次のとおりです.
Sqlite - sqlite , )
sqlite , sqlite3.c ,sqlite3.h 。
sqlite , 。 sqlite source , , 。
Sqlite
1 vc ++ win32 Project , Applicationtype Static libray,Additional options ,add common header file 。
2 source sqlite3.c , header files sqlite.h.
3 , , sqlite3.lib 。 sqlite , sqlite3.h sqlite3.lib 。
Sqlite
1 vc ++ win32 Project sqlitesample, Console , 。
sqlite.h 。
2 main
#include "stdafx.h"
#include "../sqlitelib/sqlite3.h"
#include "string.h"
#pragma comment(lib, "../Debug/sqlitelib.lib")
void doTest();
int _tmain(int argc, _TCHAR* argv[])
{
doTest();
return 0;
}
void doTest() {
sqlite3* conn = NULL;
const char* createTableSQL ="CREATE TABLE TESTTABLE (int_col INT, float_col REAL, string_col TEXT)";
const char* selectSQL = "SELECT * FROM TESTTABLE WHERE 1 = 0";
sqlite3_stmt* stmt = NULL;
int len = strlen(createTableSQL);
int result = sqlite3_open("E:\\Hbb0b0\\sqlitedb\\mytest.db",&conn);
sqlite3_stmt* stmt2 = NULL;
//1.
if (result != SQLITE_OK) {
sqlite3_close(conn);
return;
}
//2. , , sqlite3_finalize sqlite3_stmt , 。
if (sqlite3_prepare_v2(conn,createTableSQL,len,&stmt,NULL) != SQLITE_OK) {
if (stmt)
sqlite3_finalize(stmt);
sqlite3_close(conn);
return;
}
//3. sqlite3_step 。 DDL DML ,sqlite3_step
// SQLITE_DONE, SELECT , SQLITE_ROW,
//SQLITE_DONE。
if (sqlite3_step(stmt) != SQLITE_DONE) {
sqlite3_finalize(stmt);
sqlite3_close(conn);
return;
}
//4. 。
sqlite3_finalize(stmt);
printf("Succeed to create test table now.
");
//5. sqlite3_stmt 。
if (sqlite3_prepare_v2(conn,selectSQL,strlen(selectSQL),&stmt2,NULL)
!= SQLITE_OK) {
if (stmt2)
sqlite3_finalize(stmt2);
sqlite3_close(conn);
return;
}
}
3 firefox sqlite manager mytest.db .
。
3コンパイル実行後firefox sqlite managerをインストールして最終生成mytestを表示できます.db .
対応するテーブルが生成されました.