iphone開發 SQLite資料庫使用

2021-05-23 08:08:25 字數 1656 閱讀 4062

我現在要使用sqlite3.0建立乙個資料庫,然後在資料庫中建立乙個**。

首先要引入sqlite3.0的lib庫。然後包含標頭檔案#import

開啟資料庫,如果沒有,那麼建立乙個

sqlite3* database_;

-(bool) open

return yes; }

if(sqlite3_open([path utf8string], &database_) == sqlite_ok) else

return no; }

建立**

//建立**,假設有五個字段,(id,cid,title,imagedata ,imagelen )

//說明一下,id為**的主鍵,必須有。

//cid,和title都是字串,imagedata是二進位制資料,imagelen 是該二進位制資料的長度。

- (bool) createchannelstable:(sqlite3*)db

int success = sqlite3_step(statement);

sqlite3_finalize(statement);

if ( success != sqlite_done)

nslog(@"create table 'channels' successed.");

return yes; }

向**中插入一條記錄

假設channle是乙個資料結構體,儲存了一條記錄的內容。

- (bool) insertonechannel:(channel*)channel

//這裡的數字1,2,3,4代表第幾個問號

sqlite3_bind_text(statement, 1, [channel.id_ utf8string], -1, sqlite_transient);

sqlite3_bind_text(statement, 2, [channel.title_ utf8string], -1, sqlite_transient);

sqlite3_bind_blob(statement, 3, [imagedata bytes], imagelen, sqlite_transient);

sqlite3_bind_int(statement, 4, imagelen);    

success = sqlite3_step(statement);

sqlite3_finalize(statement);

if (success == sqlite_error)  

nslog(@"insert one channel#############:id = %@",channel.id

_);return yes; }

資料庫查詢

這裡獲取**中所有的記錄,放到陣列fchannels中。

- (void) getchannels:(nsmutablearray*)fchannels

//查詢結果集中一條一條的遍歷所有的記錄,這裡的數字對應的是列值。

while (sqlite3_step(statement) == sqlite_row)

[fchannels addobject:channel];

[channel release]; }

sqlite3_finalize(statement); }

就簡單說這些吧

iphone開發之SQLite使用詳解

原文 sqlite是乙個開源的嵌入式關聯式資料庫,它在2000年由d.richard hipp發布,它的減少應用程式管理資料的開銷,sqlite可移植性好,很容易使用,很小,高效而且可靠。sqlite嵌入到使用它的應用程式中,它們共用相同的程序空間,而不是單獨的乙個程序。從外部看,它並不像乙個rdb...

iphone開發 SQLite資料庫使用

我現在要使用sqlite3.0建立乙個資料庫,然後在資料庫中建立乙個 首先要引入sqlite3.0的lib庫。然後包含標頭檔案 import 開啟資料庫,如果沒有,那麼建立乙個 sqlite3 database bool open return yes if sqlite3 open path ut...

iphone開發 SQLite資料庫使用

我現在要使用sqlite3.0建立乙個資料庫,然後在資料庫中建立乙個 首先要引入sqlite3.0的lib庫。然後包含標頭檔案 import 開啟資料庫,如果沒有,那麼建立乙個 sqlite3 database 找到資料庫檔案mydb.sql if find return yes if sqlite...