sqlite工作記錄 1資料庫資料寫入 轉

2021-07-09 11:54:48 字數 2290 閱讀 6585

二、常規資料插入:

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...