與關聯式資料庫進行互動的標準sqlite命令類似於sql,包括create、select、insert、update、delete和drop,基於操作性質可以分為以下幾種:
// 定乙個資料庫物件
sqlite3 *_database;
nsstring *path = [nssearchpathfordirectoriesindomains(nsdocumentdirectory, nsuserdomainmask, yes) firstobject];
sqlite3_open(databasepath.utf8string, &_database);
sqlite3_stmt *stmt;
sqlite3_prepare_v2(_database, sql, -1, &stmt, null);
sqlite3_stmt *stmt;
if (sqlite3_prepare_v2(_database, insertsql.utf8string, -1, &stmt, null) == sqlite_ok)
sqlite3_step(stmt);
sqlite3_finalize(stmt);
sqlite3_close(_database);
繫結過程中的引數int sqlite3_bind_***x(sqlite3_stmt*,int,...);
第二個int型別的引數:表示引數在sql中的序號(從1開始)
第三個引數:要繫結引數的值
對於blob和text數值的額外引數:
第四個引數是字串的長度,不包括結束『\0』
第五個引數:型別是 void (*)(void *):表示sqlite處理結束後用於清理引數字串的函式,沒有進行繫結的未知引數將被認為是 null
執行過程
int sqlite3_step(sqlite3_stmt*);
返回值:
結束的時候清理 statement 物件
int sqlite3_finalize(sqlite3_stmt*);
在關閉資料庫之前清理過程中占有的資源
重置過程的執行
int sqlite3_reset(sqlite3_stmt *stmt);
過程將返回沒有執行之前的狀態,繫結的引數不會變化
得到結果的總共行數
int sqlite3_column_count(sqlite3_stmt *stmt);
如果過程沒有返回值,如update將返回0
得到當前行中包含的資料個數
int sqlite3_data_count(sqlite3_stmt *);
如果 sqlite3_step(); 返回sqlite_row,可以得到列數,否則為零
得到資料行中某個列的資料
sqlite3_column_***(sqlite3_stmt *, int icol);
在 sqlite3_step(); 返回sqlite_row 後,使用它得到第 icol 列的資料
得到資料行中某個列的資料的型別
int sqlite3_column_type(sqlite3_stmt*,int icol);
返回值為:sqlite_integer,sqlite_float,sqlite_text,sqlite_blob,sqlite_null SQLite3建立資料庫的方法
介面和mysql一樣,都是cmd介面,但不是在sqlite.exe中建立資料庫 首先還是說一下cmd下sqlite的使用網上已經很多了 不做過多的贅述。大致說一下相應的命令就行了 作為學習sqlite的乙個記錄 2 解壓後使用cmd命令進入sqlite3.exe檔案所在的路徑執行命令就可以操作做相應...
SQLite3建立資料庫的方法
上次剛接觸sqllite,不知道怎麼建立資料庫,現在做下總結 介面和mysql一樣,都是cmd介面,但不是在sqlite.exe中建立資料庫 首先還是說一下cmd下sqlite的使用網上已經很多了 不做過多的贅述。大致說一下相應的命令就行了 作為學習sqlite的乙個記錄 2 解壓後使用cmd命令進...
Sqlite3 資料庫使用
iphone本身是支援 sqlite3 資料庫的,在專案中匯入libsqlite3.dylib。並建立資料庫,在終端,建立資料庫的方式 mkdir sql 建立sql資料夾 cd sql 進入sql目錄下 sqlite3 student.sql 建立名為 student.sql的資料庫 建立表 插入...