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のソースコードは次のとおりです.
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 .
対応するテーブルが生成されました.