background image

4、使用 sqlite3_step
函数执行

SQL 语句,遍历结果集;

5、使用 sqlite3_column_text 等函数提取字段数据;
6、使用 sqlite3_finalize 和 sqlite3_close 函数释放资源。
NoteDAO.m 中的按照主键查询数据方法:

1

-(Note*) findById:(Note*)model

2

{

3

NSString *path = [self applicationDocumentsDirectoryFile];

4

if (sqlite3_open([path UTF8String], &db) != SQLITE_OK) { 

5

sqlite3_close(db);  

6

NSAssert(NO,@”数据库打开失败。”);

7

} else {

8

NSString *qsql = @”SELECT cdate,content FROM Note where cdate =?”;

9

sqlite3_stmt *statement;

10 //预处理过程
11 if (sqlite3_prepare_v2(db, [qsql UTF8String], -1, &statement, NULL) == SQLITE_OK) 

12 //准备参数
13 NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 

14 [dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
15 NSString *nsdate = [dateFormatter stringFromDate:model.date];
16 //绑定参数开始
17 sqlite3_bind_text(statement, 1, [nsdate UTF8String], -1, NULL); 

18 //执行
19 if (sqlite3_step(statement) == SQLITE_ROW) { 

20 char *cdate = (char *) sqlite3_column_text(statement, 0); 

21 NSString *nscdate = [[NSString alloc] initWithUTF8String: cdate];
22 char *content = (char *) sqlite3_column_text(statement, 1);
23 NSString * nscontent = [[NSString alloc] initWithUTF8String: content];
24 Note* note = [[Note alloc] init];
25 note.date = [dateFormatter dateFromString:nscdate];
26 note.content = nscontent;
27 sqlite3_finalize(statement);
28 sqlite3_close(db);
29 return note;
30 }
31 }
32 sqlite3_finalize(statement); 

33 sqlite3_close(db);  

34 }
35 return nil;
36 }

                   找软件资料,就到一览软件文库

http://wk.yl1001.com/rj/