sqlce與sqlite資料庫的比較

2021-05-04 03:47:43 字數 2539 閱讀 3909

hr   =   cocreateinstance(clsid_sqlserverce_3_0,   0,   clsctx_inproc_server,

iid_idbinitialize,   (void**)&pidbinitialize);

if   (failed(hr))

dbprop[0].dwpropertyid   =   dbprop_init_datasource;

dbprop[0].dwoptions   =   dbpropoptions_required;

dbprop[0].vvalue.vt   =   vt_bstr;

dbprop[0].vvalue.bstrval   =   sysallocstring(l"//db.sdf"); //need   oleaut32.lib

if   (dbprop[0].vvalue.bstrval   ==   null)

dbpropset[0].guidpropertyset   =   dbpropset_dbinit; //#define   dbinitconstants

dbpropset[0].cproperties   =   sizeof(dbprop)   /   sizeof(dbprop[0]);

dbpropset[0].rgproperties   =   dbprop;

hr   =   pidbinitialize-> queryinte***ce(iid_idbproperties,(void**)&pidbproperties);

if   (failed(hr))

hr   =   pidbproperties-> setproperties(sizeof(dbpropset)/sizeof(dbpropset[0]),dbpropset);

if   (failed(hr))

hr   =   pidbinitialize-> initialize();

if   (failed(hr))

hr   =   pidbproperties-> queryinte***ce(iid_idbcreatesession,(void**)&pidbcreatesession);

if   (failed(hr))

hr   =   pidbcreatesession-> createsession(null,iid_iunknown,&piunknown); //need   uuid.lib

if   (failed(hr))

hr   =   piunknown-> queryinte***ce(iid_idbcreatecommand,(void**)&pidbcreatecommand);

if   (failed(hr))

hr   =   pidbcreatecommand-> createcommand(null,iid_icommandtext,(iunknown   **)&picommandtext);

if   (failed(hr))

hr   =   picommandtext-> setcommandtext(dbguid_sql,l"select * from sninfo"); //執行查詢

3. 這下我們就可以在evc4裡面操作sqlite資料庫了:

//開啟資料庫

cppsqlite3db db;

//開啟或新建乙個資料庫

db.open(l"//ding.db

");//新建表

db.execdml(l"create table sninfo(id nchar(12), area nvarchar(6), info nvarchar(60),source nchar(6), target nchar(6))");

//查詢

cppsqlite3query q = db.execquery(l"select * from sninfo where area='廣州區'");

cstring strtemp;

while (!q.eof())

q.finalize();

db.close();

4.對sqlite的資料庫操作就介紹到這裡,我目前也就用了這麼多,更多的我也需要學習,在wince或mobile下用sqlite要注意一點的是,資料庫的路徑中不要含有中文字,否則會開啟失敗,如果非要用中文,那必須得轉成utf-8才行,sqlite內部是通過utf-8來讀取的。

三. 後記

對比了一下sqlce和sqlite在查詢50w記錄時的效能,都可以在2秒鐘之內完成,(一開始我沒建index,查了4分多鐘,暈),一定記得要建索引哦。否則查詢n慢。

文筆不好,水平有限,記錄的不是很清楚,寫得不對的地方還請大家指正,一起學習一起進步。

SQLite 資料庫安裝與建立資料庫

嵌入式關聯式資料庫 ubuntu sudo apt getinstall sqlite3 sqlite3 dev centos,orfedora yum install sqlite3 sqlite3 dev 使用下面的命令來檢查您的機器上是否已經安裝了 sqlite。sqlite3 exit 退出...

wince上資料庫 sqlce和sqlite

hr cocreateinstance clsid sqlserverce 3 0,0,clsctx inproc server,iid idbinitialize,void pidbinitialize if failed hr dbprop 0 dwpropertyid dbprop init ...

wince上資料庫 sqlce和sqlite

hr cocreateinstance clsid sqlserverce 3 0,0,clsctx inproc server,iid idbinitialize,void pidbinitialize if failed hr dbprop 0 dwpropertyid dbprop init ...