VC++操作SQLite簡略實例。本站提示廣大學習愛好者:(VC++操作SQLite簡略實例)文章只能為提供參考,不一定能成為您想要的結果。以下是VC++操作SQLite簡略實例正文
關於許多法式員來講,SQLite其實不生疏。SQLite 是一款重要用於嵌入式的開源數據庫,可集成在本身的桌面法式中,也可替換Access作為後台數據庫。SQLite 支撐多半SQL92尺度,例如:索引、限制、觸發和檢查支撐,支撐 NULL、INTEGER、REAL、TEXT 和 BLOB 數據類型,支撐事務。以下是一些SQLite的簡略應用。
//樹立數據庫 C:\sqlite-3_6_11> sqlite3.exe dbname.db
樹立數據庫的時刻sqlite3.exe前面跟數據庫文件名
//創立數據表 sqlite> create table users(userid varchar(20) PRIMARY KEY, ...> age int, ...> birthday datetime); //添加記載 insert into users values('wang',20,'1989-5-4'); insert into users values('li',22,'1987-11-16'); //查詢記載 select * from users order by birthday; //刪除記載 delete from users where userid='wang'; //加入 sqlitesqlite> .exit
SQLite數據庫的數據構造是存貯在 "sqlite_master" 表中,詳細敕令可以輸出.help檢查或參考SQLite贊助文檔。
在VC下應用SQLite的簡略例子:
#include "../sqlite3_lib/sqlite3.h" //請以你的地址為准 #pragma comment(lib, "../sqlite3_lib/sqlite3.lib")//請以你的地址為准 static int _sql_callback(void * notused, int argc, char ** argv, char ** szColName) { int i; for ( i=0; i < argc; i++ ) { printf( "%s = %s\n", szColName[i], argv[i] == 0 ? "NUL" : argv[i] ); } return 0; } int main(int argc, char * argv[]) { const char * sSQL1 = "create table users(userid varchar(20) PRIMARY KEY, age int, birthday datetime);"; const char * sSQL2 = "insert into users values('wang',20,'1989-5-4');"; const char * sSQL3 = "select * from users;"; sqlite3 * db = 0; char * pErrMsg = 0; int ret = 0; //銜接數據庫 ret = sqlite3_open("./test.db", &db); if ( ret != SQLITE_OK ) { fprintf(stderr, "不克不及翻開數據庫: %s", sqlite3_errmsg(db)); return(1); } printf("數據庫銜接勝利!\n"); //履行SQL樹立數據庫 sqlite3_exec( db, sSQL1, 0, 0, &pErrMsg ); if ( ret != SQLITE_OK ) { fprintf(stderr, "SQL error: %s\n", pErrMsg); sqlite3_free(pErrMsg); } //拔出記載 sqlite3_exec( db, sSQL2, 0, 0, &pErrMsg); //查詢數據表 sqlite3_exec( db, sSQL3, _sql_callback, 0, &pErrMsg); //封閉數據庫 sqlite3_close(db); db = 0; return 0; }