sqlite常用語法詳細介紹

2022-09-02 16:48:20 字數 2574 閱讀 6275

1、sql語句的預編譯:將語句轉為資料流,執行語句前檢查語句的語法,但不能知道語句是否能查出結果。此方法有返回值 

預編譯成功則返回sqlite_ok----0否則返回sqlite_error----1

int sqlite3_prepare_v2(

sqlite3 *db,                 //指向資料庫的指標

const char *zsql,         //sql語句

int nbyte,                   //sql語句的長度 (一般用-1,系統可以自動算出字串得長度)

sqlite3_stmt **ppstmt, //指向語句的指標

const char **pztail       //sql中沒有用到的一部分,一般為空

);2、sql語句的值繫結

*此類方法均有返回值  預編譯成功則返回sqlite_ok----0否則返回sqlite_error----1

//對整數值的繫結

int sqlite3_bind_int(

sqlite3_stmt*,            //指向語句的指標

int,                      //佔位符的序號(從1開始以此類推)

int                       //繫結的值

);//對字串值的繫結

int sqlite3_bind_text(

sqlite3_stmt*,            //指向語句的指標

int,                      //佔位符的序號(從1開始以此類推)

const char*,              //要繫結的值(這裡要c型別的字串(cstring),一般我們使用的是oc的字串(nsstring*)要通過- (__strong const char *)utf8string轉一下就可以了)

int n,                    //該字串的長度(一般用-1,系統可以自動算出字串得長度)

void(*)(void*)            //**函式(這裡博主還沒用過所以不是很了解以後會慢慢更新)

);//對二進位制資料值的繫結 一般用於的訪問

int sqlite3_bind_blob(

sqlite3_stmt*,            //指向語句的指標

int,                      //佔位符的序號(從1開始以此類推)

const void*,              //要繫結的值(這裡要的是c型別的位元(byte),一般我們使用的是oc的nsdata(nsdata*)要通過- (const void *)bytes轉一下就可以了)

int n,                    //資料的長度(用- (nsuinteger)length得到  這裡為什麼不用-1呢?因為-1對於算字串長度在行,其他的不一定準所以這裡我們手動算出資料的長度)

void(*)(void*)            //**函式(這裡博主還沒用過所以不是很了解以後會慢慢更新)

);3、sql語句的取值(從資料庫中對每一列取值)

//對整數欄位的取值

int sqlite3_column_int(

sqlite3_stmt*,            //指向語句的指標

int icol                  //資料庫中表中列的序號(從0開始以此類推)

);//對字串欄位的取值

*注意這裡我們取得是無符號的c字串我們要先轉為有符號c字串再轉為oc字串

例sname為oc字串

nsstring *sname=[nsstring stringwithutf8string:(const char *)sqlite3_column_text(stmt, 1)];

const unsigned char *sqlite3_column_text(

sqlite3_stmt*,            //指向語句的指標

int icol                  //資料庫中表中列的序號(從0開始以此類推)

);//對二進位製字段的取值

*注意這裡我們取得是c二進位制我們要轉為oc二進位制(我們要將byte(c)轉為nsdata(oc)通過+ (id)datawithbytes:(const void *)bytes length:(nsuinteger)length;因為這裡需要資料的長度所以需要呼叫int sqlite3_column_bytes(sqlite3_stmt*, int icol);獲取資料的長度)

例int length=sqlite3_column_bytes(stmt,3);//獲取二進位制資料的長度

nsdata *img=[nsdata datawithbytes:sqlite3_column_blob(stmt, 3) length:length]; //將二進位制資料轉換位nsdata物件

const void *sqlite3_column_blob(

sqlite3_stmt*,            //指向語句的指標

int icol                  //資料庫中表中列的序號(從0開始以此類推)

);

cmake常用語法介紹

使用cmake編譯程式 cd path of cmakelist.txt cmake make make install 語法 1.link directories 查詢動態庫路徑,相當於makefile的 l選項,且該方法必須在add library和add executable之前 2.鏈結靜態...

markdown常用語法介紹

markdown是一種輕量級標記語言,創始人為約翰 格魯伯 英語 john gruber 它允許人們使用易讀易寫的純文字格式編寫文件,然後轉換成有效的xhtml 或者html 文件。markdown 是一種輕量級標記語言,讓寫作者專注於寫作而不用關注樣式。很多有程式設計基礎的程式設計師比較喜歡使用m...

mysql常用語法 MySQL常用語法

更新資料 update 表名 set 健名 更改的值 where 建 刪除資料 delete from 表名 where 索引 create index 索引名稱 on 表名 鍵名 建立試圖 create view 檢視名 鍵,鍵 as select matchno,abs won lost fro...