今天要學習sqlite3的類,codeproject上的這個作者寫的c++類操作sqlie3,很實用的說。膜拜一下。omg
新增標頭檔案 #include "cppsqlite3.h" 這個檔案中,已經包含了#include "sqlite3.h"標頭檔案。
定義資料庫
cppsqlite3 db ;
獲取資料庫資訊
db.getversion();//資料庫版本資訊
sqliteheaderversion()
strmessage.format("sqliteheaderversion:%s sqlitelibraryversion:%s sqlitelibraryversionnumber:%d sqliteversion:%s", db.sqliteheaderversion(),db.sqlitelibraryversion(),db.sqlitelibraryversionnumber(),db.sqliteversion());輸出結果:sqliteheaderversion:3.6.21 sqlitelibraryversion:3.6.22 sqlitelibraryversionnumber:3006022 sqliteversion:3.6.21
執行sql語言
db.execdml("create table");
插入sql記錄
int rows = db.execdml("insert into table ");
返回值為插入的記錄條數;
int id = db.lastrowid();
獲取最後一次的插入記錄id,適用於自動增長的主鍵。
刪除sql記錄
int irows = db.execdml("delete * from table ");
返回值是刪除的記錄條數;
更新sql記錄
int rows = db.execdml("update table set rowid = 1");
返回值是更新的記錄條數
使用事務控制
db.execdml("begin transaction;");
db.execdml("insert into table .......");
db.execdml("commit transaction;");
返回計算值
int icount = db.execscalar("select count(*) from table;");
查詢結果集
cppsqlite3query q = db.execquery("select * from table "); //查詢
取結果集的字段資訊
int ifiles = q.numfields() ;//總字段數
q.fieldname(1);//欄位名稱
q.fieldtype(1);//字段型別
遍歷結果集中的記錄
while( !q.eof())
格式化查詢
可以格式條件以及插入null值
cppsqlite3buff buffsql;
buffsql.format("insert into table(id,value) values(%q,%q)",null,"what's is it ?");
db.execdml(buffsql);
按表查詢
cppsqlite3table t = db.gettable("select * from table ");
取表字段資訊:
t.numfields();//總字段數
t.fieldname(0);//欄位名稱
t.fieldtype(0);//字段型別
遍歷**結果
for(int row = 0 ;i
Sqlite3學習筆記
1 觸發器 trigger 說明 a sqlite3觸發器只支援for each row,不支援for each statment,即只能對行的增刪改進行監聽,不能對單條sql語句進行監聽 b sqlite3觸發器觸發的執行結果只能執行dml操作,無法執行ddl操作 語法格式 create trig...
sqlite3學習筆記
配置的環境 python version 3.6 django version 1.11.5 1.建立sqlite3資料庫 執行python3 manage.py syncdb提示unknown command syncdb python3 manage.py syncdb unknown comm...
使用sqlite3 模組操作sqlite3資料庫
python內建了sqlite3模組,可以操作流行的嵌入式資料庫sqlite3。如果看了我前面的使用 pymysql 操作mysql資料庫這篇文章就更簡單了。因為它們都遵循pep 249,所以操作方法幾乎相同。廢話就不多說了,直接看 吧。都差不多,首先匯入模組,然後建立連線,然後獲取游標物件,之後利...