在VC6下用SQLite開發零配置的資料庫應用

來源:互聯網
上載者:User

轉帖地址:http://blog.csdn.net/tipfoo/article/details/2003220

系統內容: XP + VC6.0 sp6 

 
SQLite是一款非常適合嵌入式應用的資料庫,小巧、快速和可靠。真正的開源免費,不保留任何著作權(Public Domain)。它無需運行額外的伺服器處理序,用它來開發案頭資料庫的應用,似乎比MS Access更顯得簡潔。


【一. 產生SQLite庫檔案】 
建立“C:/mylibs/libSQLite3”目錄,將它作為我們的當前工作目錄。 
 
(1)在SQLite的官方網站下載Windows平台下的3.5.4版本的SQLite, : 
http://www.sqlite.org/sqlitedll-3_5_4.zip 
解壓縮其中的“sqlite3.def”和“sqlite3.dll”兩個檔案到“C:/mylibs/libSQLite3/”; 
開啟“命令提示字元”視窗,用LIB命令產生用於串連(LINK)使用的lib檔案: 
CD C:/mylibs/libSQLite3 
LIB /DEF:sqlite3.def /machine:IX86 
這樣將產生“sqlite3.lib”和“sqlite3.exp”兩個檔案。 

(2)在SQLite官方網站下載SQLite3的來源程式, : 
http://www.sqlite.org/sqlite-source-3_5_4.zip 
解壓出其中的“sqlite3.h”檔案到“C:/mylibs/libSQLite3/”。 

(3)檢查檔案清單,此時“C:/mylibs/libSQLite3/”目錄下應該有如下五個檔案: 
sqlite3.def 
sqlite3.dll
 sqlite3.exp
sqlite3.h 
sqlite3.lib 
 
 
【二. 編寫樣本程式】 
(1)開啟VC6.0,建立一個空的“Win32控制台應用程式”項目,名為“sqlitedemo”,在“D:/VCStudio/sqlitedemo”目錄下。

(2)Project→Settings,在Link選項卡,“Category”選擇“General”,在“Object/library modules”的最後填入“sqlite3.lib”,注意用空格分隔各項。

(3)將“libSQLite3”目錄及其包含的檔案複製到我們的工程目錄。再將“libSQLite3”目錄下的“sqlite3.lib”和“ sqlite3.dll”檔案移動到工程目錄下。

這樣,在需要用到“sqlite”庫的CPP檔案頂部,加入一行:
#include "sqlite3.h"
然後,就可以在檔案中調用sqlite3.dll裡面的所有函數了。 

(4)建立樣本資料庫。開啟“命令提示字元”視窗,切換到工程目錄。執行:
D:/VCStudio/sqlitedemo>sqlite3 app.db
SQLite version 3.5.4
Enter ".help" for instructions
sqlite> CREATE TABLE t1(c1 TEXT);
sqlite> INSERT INTO t1 VALUES('Hello World!');
sqlite> SELECT * FROM t1;
Hello World!
sqlite> .exit

(5)建立“C++源檔案”,名為“sqlitedemo.cpp”,選擇“加入工程”,編寫代碼 
#include <stdio.h> 
#include <stdlib.h> 
 
#include "./libSQLite3/sqlite3.h" 
 
static int _callback_exec(void * notused,int argc, char ** argv, char ** aszColName) 

    int i; 
    for ( i=0; i<argc; i++ ) 
    { 
        printf( "%s = %s/n", aszColName[i], argv[i] == 0 ? "NUL" : argv[i] ); 
    } 
 
    return 0; 

 
int main(int argc, char * argv[]) 

    const char * sSQL = "select * from t1;"; 
    char * pErrMsg = 0; 
    int ret = 0; 
    sqlite3 * db = 0; 
    
    ret = sqlite3_open("./app.db", &db); 
 
    if ( ret != SQLITE_OK ) 
    { 
        fprintf(stderr, "Could not open database: %s", sqlite3_errmsg(db)); 
        exit(1); 
    } 
 
    printf("Successfully connected to database/n"); 
 
    sqlite3_exec( db, sSQL, _callback_exec, 0, &pErrMsg ); 
    if ( ret != SQLITE_OK ) 
    { 
        fprintf(stderr, "SQL error: %s/n", pErrMsg); 
        sqlite3_free(pErrMsg); 
    } 
 
    sqlite3_close(db); 
    db = 0; 
 
    return 0; 


按“Ctrl+F5”運行,結果:
Successfully connected to database
c1 = Hello World!
Press any key to continue

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.