青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

隨筆-167  評論-8  文章-0  trackbacks-0

作者:zieckey( zieckey@yahoo.com.cn
All Rights Reserved!

一. 編譯動態鏈接庫庫文件

下面的是我的編譯過程,或許對你有些幫助:

1). 打開VC新建一個“Win32 Dynamic-Link Library”工程,命名為:sqlite3
2). 在接下來的對話框中選擇"An empty DLL project",點 FINISH->OK
3). 將源碼中所有的 *.c *.h *.def 復制到工程文件夾下
4). 在工程的Source File中添加你下載到的SQLite源文件中所有*.c文件,
注意這里不要添加shell.c和tclsqlite.c這兩個文件。
5). 將 SQLite 源文件中的 sqlite3.def 文件添加到在工程的Source File中
6). 在Header File中添加你下載到的SQLite源文件中所有*.h文件,
7). 開始編譯,Build(F7)一下
也許到這里會遇到一個錯誤:

e:\zieckey\sqlite\sqlite3\sqlite3ext.h(22) : fatal error C1083: Cannot open include file: 'sqlite3.h': No such file or directory

經檢查發現,源碼中包含sqlite3.h都是以 #include <sqlite3.h> 方式包含的,
這就是說編譯器在系統默認路徑中搜索,這樣當然搜索不到 sqlite3.h 這個頭文件啦,
這時可以改為 #include "sqlite3.h" ,讓編譯器在工程路徑中搜索,
但是如果還有其他地方也是以 #include <sqlite3.h> 方式包含的,那么改源碼就顯得有點麻煩,
好了,我們可以這樣,在菜單欄依次選擇:Tools->Options...->Directeries
在下面的Directeries選項中輸入你的 sqlite3.h 的路徑,這里也就是你的工程目錄.
添加好后,我們在編譯一下就好了,
最后我們在工程目錄的 Debug 目錄生成了下面兩個重要文件:
動態鏈接庫文件 sqlite3.dll 和引入庫文件 sqlite3.lib


二. 使用動態鏈接庫

下面我們來編寫個程序來測試下我們的動態鏈接庫.

在VC下新建一個空的"Win32 Console Application" Win32控制臺程序,工程命名為:TestSqliteOnWindows
再新建一個 test.cpp 的C++語言源程序,源代碼如下:

// name: test.cpp
// This prog is used to test C/C++ API for sqlite3 .It is very simple,ha !
// Author : zieckey
// data : 2006/11/28

#include <stdio.h>
#include <stdlib.h>
#include "sqlite3.h"
#define _DEBUG_

int main( void )
...{
sqlite3 *db=NULL;
char *zErrMsg = 0;

int rc;

rc = sqlite3_open("zieckey.db", &db); //打開指定的數據庫文件,如果不存在將創建一個同名的數據庫文件
if( rc )
...{
fprintf(stderr, "Can't open database: %s ", sqlite3_errmsg(db));
sqlite3_close(db);
return (1);
}
else printf("You have opened a sqlite3 database named zieckey.db successfully! Congratulations! Have fun ! ^-^  ");


//創建一個表,如果該表存在,則不創建,并給出提示信息,存儲在 zErrMsg 中
char *sql = " CREATE TABLE SensorData(ID INTEGER PRIMARY KEY,SensorID INTEGER,SiteNum INTEGER,Time VARCHAR(12),SensorParameter REAL);" ;
sqlite3_exec( db , sql , 0 , 0 , &zErrMsg );

#ifdef _DEBUG_
printf("zErrMsg = %s  ", zErrMsg);
#endif

//插入數據
sql = "INSERT INTO "SensorData" VALUES(NULL , 1 , 1 , '200605011206', 18.9 );" ;
sqlite3_exec( db , sql , 0 , 0 , &zErrMsg );

sql = "INSERT INTO "SensorData" VALUES(NULL , 23 , 45 , '200605011306', 16.4 );" ;
sqlite3_exec( db , sql , 0 , 0 , &zErrMsg );

sql = "INSERT INTO "SensorData" VALUES(NULL , 34 , 45 , '200605011306', 15.4 );" ;
sqlite3_exec( db , sql , 0 , 0 , &zErrMsg );


int nrow = 0, ncolumn = 0;
char **azResult; //二維數組存放結果

//查詢數據
sql = "SELECT * FROM SensorData ";
sqlite3_get_table( db , sql , &azResult , &nrow , &ncolumn , &zErrMsg );
int i = 0 ;
printf( "row:%d column=%d  " , nrow , ncolumn );
printf( " The result of querying is :  " );
for( i=0 ; i<( nrow + 1 ) * ncolumn ; i++ )
printf( "azResult[%d] = %s ", i , azResult[i] );

//刪除數據
sql = "DELETE FROM SensorData WHERE SensorID = 1 ;" ;
sqlite3_exec( db , sql , 0 , 0 , &zErrMsg );
#ifdef _DEBUG_
printf("zErrMsg = %s  ", zErrMsg);
#endif
sql = "SELECT * FROM SensorData ";
sqlite3_get_table( db , sql , &azResult , &nrow , &ncolumn , &zErrMsg );
printf( " row:%d column=%d " , nrow , ncolumn );
printf( " After deleting , the result of querying is :  " );
for( i=0 ; i<( nrow + 1 ) * ncolumn ; i++ )
printf( "azResult[%d] = %s ", i , azResult[i] );


//釋放掉 azResult 的內存空間
sqlite3_free_table( azResult );

#ifdef _DEBUG_
printf("zErrMsg = %s  ", zErrMsg);
#endif

sqlite3_close(db); //關閉數據庫
return 0;
}

 

另外,將sqlite3.h sqlite3.lib sqlite3.dll文件復制到我們的工程目錄.
最后 Project->Settings 在Link選項卡找到Object/library modules : 在最后填入sqlite3.lib 。
如果原來就有鏈接,請使用空格分隔。
現在可以編譯了.
運行結果如下:
You have opened a sqlite3 database named zieckey.db successfully!
Congratulations! Have fun ! ^-^
zErrMsg = (null)
row:3 column=5

The result of querying is :
azResult[0] = ID
azResult[1] = SensorID
azResult[2] = SiteNum
azResult[3] = Time
azResult[4] = SensorParameter
azResult[5] = 1
azResult[6] = 1
azResult[7] = 1
azResult[8] = 200605011206
azResult[9] = 18.9
azResult[10] = 2
azResult[11] = 23
azResult[12] = 45
azResult[13] = 200605011306
azResult[14] = 16.4
azResult[15] = 3
azResult[16] = 34
azResult[17] = 45
azResult[18] = 200605011306
azResult[19] = 15.4
zErrMsg = (null)


row:2 column=5
After deleting , the result of querying is :
azResult[0] = ID
azResult[1] = SensorID
azResult[2] = SiteNum
azResult[3] = Time
azResult[4] = SensorParameter
azResult[5] = 2
azResult[6] = 23
azResult[7] = 45
azResult[8] = 200605011306
azResult[9] = 16.4
azResult[10] = 3
azResult[11] = 34
azResult[12] = 45
azResult[13] = 200605011306
azResult[14] = 15.4
zErrMsg = (null)
Press any key to continue

這個程序,我們先創建一個數據庫,然后新建一個表,然后插入一些數據,
再查詢看看插入的數據是否正確,然后又刪除一些數據,刪除后我們再查詢了一下,
發現我們的刪除操作也是成功的.
這個程序簡單的調用 sqlite 的函數接口來實現對數據庫的管理,
包括創建數據庫、創建表格、插入數據、查詢數據、刪除數據等。


注:在上面的第五步
5). 將 SQLite 源文件中的 sqlite3.def 文件添加到在工程的Source File中
是必須的, sqlite3.def 這個文件的加入會生成 *.lib引入庫文件,這個對于*.dll文件是很重要的.否則你光有*.dll文件在程序調用的時候就不是那么方便了,因為這樣你只能通過動態加載dll的方式調用dll庫中函數

三、如何編譯sqlite3.4.2版本 (本人原創:添加于 2007年9月29日)

其實這個版本的比之前的更好編譯而且很簡單。

步驟如下:
1、在網站下載源文件,選擇“sqlite-amalgamation-3_4_2.zip”下載,地址http://www.sqlite.org/sqlite-amalgamation-3_4_2.zip。此文件中包含了sqlite3.h和sqlite3.c兩個文件。

2、下載“sqlitedll-3_4_2.zip”,地址 http://www.sqlite.org/sqlitedll-3_4_2.zip,次文件中包含編譯好的DLL文件和DEF文件,DEF文件用來在編譯時生成lib文件。(重點)

3、打開VC新建一個“Win32 Dynamic-Link Library”工程,命名為:sqlite3
4、 在接下來的對話框中選擇"An empty DLL project",點 FINISH->OK
5、將解壓后的 *.c *.h *.def 復制到工程文件夾下
6、在工程的Source File中添加你下載到的SQLite源文件中sqlite3.c文件,
7、 將 SQLite 源文件中的 sqlite3.def 文件添加到在工程的Source File中
8、在Header File中添加你下載到的SQLite源文件中的sqlite3.h文件,
9、 開始編譯,Build(F7)一下

 

本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/leon_founder/archive/2006/12/28/1465944.aspx

posted on 2010-08-24 16:21 老馬驛站 閱讀(2928) 評論(0)  編輯 收藏 引用 所屬分類: DataBase
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美1区3d| 韩日欧美一区二区三区| 欧美国产综合视频| 亚洲欧美日韩一区在线| 在线观看视频一区二区欧美日韩| 欧美日韩精品一区| 蜜臀a∨国产成人精品| 欧美一区二区三区四区在线观看地址| 亚洲区中文字幕| 久久综合伊人77777| 性久久久久久久久久久久| 亚洲社区在线观看| 亚洲一区影院| 久久激情综合网| 久久女同精品一区二区| 欧美+亚洲+精品+三区| 狂野欧美一区| 亚洲欧洲综合| 欧美一级午夜免费电影| 麻豆精品一区二区综合av| 欧美国产日韩亚洲一区| 欧美日韩在线播放一区二区| 国产精品国产精品国产专区不蜜| 国产精品久久久久久久免费软件 | 国产精品国产亚洲精品看不卡15 | 精品白丝av| 国内成+人亚洲+欧美+综合在线| 黄色成人在线网址| 正在播放欧美视频| 猫咪成人在线观看| 亚洲美洲欧洲综合国产一区| 性亚洲最疯狂xxxx高清| 欧美日韩免费一区二区三区视频 | 欧美日本一区| 亚洲自拍偷拍一区| 久久一区二区三区四区五区| 在线免费观看一区二区三区| 欧美精品少妇一区二区三区| 国产视频在线观看一区二区三区| 亚洲国产精品一区二区第四页av| 欧美一区日韩一区| 亚洲最新在线| 国产精品av久久久久久麻豆网| 在线观看亚洲视频| 欧美高清视频免费观看| 欧美制服丝袜第一页| 国产日韩欧美日韩大片| 欧美在线地址| 久久精品国产亚洲5555| 国产主播一区| 久久综合伊人77777麻豆| 久久久国际精品| 亚洲精品一区在线| 亚洲免费观看高清在线观看| 久久久国产一区二区| 亚洲午夜在线观看| 黄色成人小视频| 99视频在线观看一区三区| 欧美日韩精品一区二区| 午夜亚洲性色福利视频| 老司机免费视频久久| 亚洲国产一区二区三区高清| 亚洲精品在线一区二区| 国产欧美综合一区二区三区| 欧美激情a∨在线视频播放| 欧美日韩国产欧美日美国产精品| 亚洲一区在线直播| 免费不卡在线观看| 欧美专区在线| 国产精品国产三级国产aⅴ浪潮| 久久久亚洲综合| 国产精品观看| 日韩性生活视频| 一片黄亚洲嫩模| 牛牛精品成人免费视频| 欧美在线观看一区二区三区| 欧美日本簧片| 日韩亚洲一区二区| 日韩视频在线你懂得| 免费精品99久久国产综合精品| 久久久久久久久久码影片| 国产精品九九久久久久久久| 亚洲欧洲美洲综合色网| 亚洲人成网站在线播| 欧美成人精品一区| 亚洲国产激情| 亚洲视频国产视频| 国产精品久久久久久一区二区三区 | 亚洲国产一区二区三区青草影视| 午夜视频久久久久久| 亚洲免费网站| 狠狠色丁香婷婷综合久久片| 欧美在线观看一区二区| 欧美一区二区三区在线| 国产欧美日韩一区二区三区| 久久久精品tv| 亚洲欧洲一区二区三区久久| 在线午夜精品自拍| 国产日产亚洲精品系列| 久久综合影视| 国产精品99久久久久久有的能看| 欧美亚洲在线观看| 亚洲日本欧美天堂| 国产网站欧美日韩免费精品在线观看| 欧美在线国产| 亚洲欧美网站| 夜夜嗨av一区二区三区免费区| 欧美中文字幕视频| 一区二区三区日韩精品| **欧美日韩vr在线| 国产亚洲二区| 国产精品久久久久久久7电影 | 99精品视频一区| 快射av在线播放一区| 亚洲免费在线视频| 亚洲久色影视| 亚洲国产精品福利| 在线观看日韩av电影| 国产色综合久久| 国产欧美日韩精品a在线观看| 欧美精品福利在线| 欧美另类视频在线| 99国产精品99久久久久久粉嫩| 麻豆精品在线观看| 麻豆乱码国产一区二区三区| 男人的天堂成人在线| 美玉足脚交一区二区三区图片| 欧美中文字幕在线视频| 久久精品在线免费观看| 欧美在线视频a| 麻豆精品精华液| 亚洲三级视频在线观看| 亚洲三级视频| 亚洲欧美一区二区视频| 久久久久国产精品一区| 久久久久久亚洲精品不卡4k岛国| 久久人人97超碰国产公开结果 | 在线亚洲免费视频| 久久成人18免费观看| 欧美刺激午夜性久久久久久久| 欧美日韩视频在线观看一区二区三区| 欧美日韩福利视频| 狠狠色噜噜狠狠狠狠色吗综合| 亚洲经典视频在线观看| 欧美一区三区二区在线观看| 欧美成人亚洲| 久久精品一区二区国产| 欧美日韩色综合| 91久久夜色精品国产网站| 欧美一区二区国产| 一本色道久久综合精品竹菊 | 亚洲自拍都市欧美小说| 女女同性女同一区二区三区91| 国产精品网曝门| 亚洲摸下面视频| 一区二区三区高清| 欧美日韩的一区二区| 亚洲福利久久| 欧美成人官网二区| 亚洲男女自偷自拍图片另类| 老司机凹凸av亚洲导航| 久久精品国产免费| 亚洲承认在线| 亚洲精品网址在线观看| 欧美成人高清视频| 亚洲精品影院| 日韩一区二区免费看| 欧美精品在线看| 亚洲网站在线| 久久精品日韩欧美| 亚洲精品免费在线| 亚洲午夜一区二区| 在线日韩av| 99热这里只有精品8| 国产一区二区中文字幕免费看| 免费久久99精品国产| 欧美欧美全黄| 久久久蜜桃精品| 欧美好吊妞视频| 久久国产黑丝| 欧美日韩在线高清| 久久久久国产精品一区二区| 欧美成人按摩| 美玉足脚交一区二区三区图片| 欧美日韩精品一区二区| 久久综合999| 国产精品久久久久久久久搜平片 | 亚洲国产一区二区精品专区| 欧美日韩日本国产亚洲在线 | 在线播放亚洲一区| 午夜精品一区二区三区四区| 国语自产精品视频在线看8查询8| 亚洲激情在线激情| 亚洲啪啪91| 欧美成人日韩| 欧美国产日韩一区二区在线观看| 国产精品免费看片| 性感少妇一区| 国模私拍一区二区三区| 国产精品99久久不卡二区|