SQLITE3 学习
SQLITE 的可视化处理工具:http://download.csdn.net/detail/sweetloveft/7587993 示例代码: #include <iostream> using namespace std; extern "C"{ #include "sqlite3.h" } #pragma comment(lib,"sqlite3.lib") int main() { string sql; sqlite3 *db; char *errMsg; sqlite3_open("mydatabase.db",&db); sql = "CREATE TABLE mpu (id TEXT)"; sqlite3_exec(db,sql.c_str(),NULL,&errMsg); sqlite3_close(db); return 0; } 小结: 需要材料:百度 sqlite3,进入官网下载所需的 dll、def、lib、h 文件,并把 dll 与 def 放在同一目录下。 主要代码: sqlite3_open(const char* filename,sqlite3** ppDb); // 打开数据库,有其他的打开方方不再列举 sqlite3_exec(sqlite3* db,const char* sql,int (*callback)(void*,int,char**,char**),void*,char** errmsg); // 执行一条 sql 语句 sqlite3_close(sqlite3* db); // 关闭数据库 SQLITE 语句(SQL 关键字均需要大写, 其他字段大小写不敏感。可参考http://www.52php.cn/article/p-ubnlqojf-yo.html,以下列举常用的): 建表:CREATE TABLE 表名 (参数名 类型,参数名 类型,...) 例:CREATE TABLE person (name TEXT) 改表名:ALTER TABLE 原表名 RENAME TO 新表名 例:ALTER TABLE person RENAME TO vip 增加一列:ALTER TABLE 表名 ADD COLUMN 列名 数据类型 限定 例:ALTER TABLE vip ADD COLUMN sex TEXT 删除表:DROP TABLE 表名 增:INSERT INTO 表名 (列1,列2,...) VALUES (值1,值2,...) 删:DELETE FROM 表名 WHERE 列名 = 某值,没有 WHERE 子句则会在保留表结构、属性、索引完整的情况下删除所有行 查:SELECT 列1,... FROM 表名 WHERE 列名 运算符 值 AND/OR 列名 运算符 值 改:UPDATE 表名 SET 列名 = 新值 WHERE 列名 = 原值 排序:SELECT 列 FROM 表名 ORDER BY 列名1,列名2 DESC,没有 DESC 则是升序排列,否则是降序排列 1,判断表是否存在: 2,'SELECT name,sql FROM sqlite_master WHERE type="table" AND name = "your_table_name" 编码转换(sqlite3 存储时是用 UTF8 编码的): BOOL CSqlite::Utf8ToUnicode(char *src,CString &dest) { DWORD dwUnicodeLen; //转换后Unicode的长度 TCHAR *pwText(nullptr); //保存Unicode的指针 //获得转换后的长度,并分配内存 dest = _T(""); dwUnicodeLen = MultiByteToWideChar(CP_UTF8,src,-1,NULL); pwText = new TCHAR[dwUnicodeLen]; if (!pwText) return FALSE; MultiByteToWideChar(CP_UTF8,pwText,dwUnicodeLen); dest = pwText; delete[] pwText; return TRUE; } BOOL CSqlite::UnicodeToUtf8(CString src,char *dest,int len) { if (!dest) return FALSE; WideCharToMultiByte(CP_UTF8,src.GetLength(),dest,len,NULL); return TRUE; } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |