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 }
找软件资料,就到一览软件文库