二、常規資料插入:
1). 建立測試資料表。
2). 通過insert語句插入測試資料。
3). 刪除測試表。
見以下**及關鍵性注釋:
[cpp]view plain
copy
#include
#include
#include
using
namespace
std;
void
dotest()
const
char
* createtablesql =
"create table testtable (int_col int, float_col real, string_col text)"
; sqlite3_stmt* stmt = null;
intlen = strlen(createtablesql);
//2. 準備建立資料表,如果建立失敗,需要用sqlite3_finalize釋放sqlite3_stmt物件,以防止記憶體洩露。
if(sqlite3_prepare_v2(conn,createtablesql,len,&stmt,null) != sqlite_ok)
//3. 通過sqlite3_step命令執行建立表的語句。對於ddl和dml語句而言,sqlite3_step執行正確的返回值
//只有sqlite_done,對於select查詢而言,如果有資料返回sqlite_row,當到達結果集末尾時則返回
//sqlite_done。
if(sqlite3_step(stmt) != sqlite_done)
//4. 釋放建立表語句物件的資源。
sqlite3_finalize(stmt);
printf("succeed to create test table now.\n"
);
intinsertcount = 10;
//5. 構建插入資料的sqlite3_stmt物件。
const
char
* insertsql =
"insert into testtable values(%d,%f,'%s')"
; const
char
* teststring =
"this is a test."
; char
sql[1024];
sqlite3_stmt* stmt2 = null;
for(int
i = 0; i < insertcount; ++i) if
(sqlite3_step(stmt2) != sqlite_done)
printf("insert succeed.\n"
);
}
sqlite3_finalize(stmt2);
//6. 為了方便下一次測試執行,我們這裡需要刪除該函式建立的資料表,否則在下次執行時將無法
//建立該錶,因為它已經存在。
const
char
* dropsql =
"drop table testtable"
; sqlite3_stmt* stmt3 = null; if
(sqlite3_prepare_v2(conn,dropsql,strlen(dropsql),&stmt3,null) != sqlite_ok) if
(sqlite3_step(stmt3) == sqlite_done)
sqlite3_finalize(stmt3);
sqlite3_close(conn);
}
intmain()
//輸出結果如下:
//succeed to create test table now.
//insert succeed.
//insert succeed.
//insert succeed.
//insert succeed.
//insert succeed.
//insert succeed.
//insert succeed.
//insert succeed.
//insert succeed.
//insert succeed.
//the test table has been dropped.
SQLITE 資料庫操作(1)
1.檢視sqlite版本 sqlite3 version2.進入sqlite後台操作 sqlite3 sgbase.db 有時在root目錄下直接輸這個命令無法開啟資料庫,應該加sgbase.db資料庫的路徑,例如 sqlite3 etc config sgbase.db 3.檢視所有資料庫 dat...
SQLite資料庫報 1錯誤
今天除錯了一段 報 1錯誤 根據行 列名未找到對應的行 列 第一感覺是對應的資料庫是不是有問題,找了半天發現該有的行列都沒有缺,行列名也沒有寫錯。再以為是資料庫結構變化,需要重新安裝應用程式,於是重新部署在手機上,還是報同樣的錯誤。最後終於發現了問題,是自己的乙個小失誤 在定義cursor時,que...
Sqlite3資料庫api使用記錄
sqlite api intsqlite3 open v2 const char filename,database filename utf 8 檔案路徑名稱 sqlite3 ppdb,out sqlite db handle intflags,flags sqlite open readonly...