2012的方法.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
sqlite 的方法 sqlite3 ? ? ? ? ?*db, 数据库句柄,跟文件句柄FILE很类似 sqlite3_stmt ? ? ?*stmt, 这个相当于ODBC的Command对象,用于保存编译好的SQL语句 sqlite3_open(), ? 打开数据库,没有数据库时创建。 sqlite3_exec(), ? 执行非查询的sql语句 Sqlite3_step(), 在调用sqlite3_prepare后,使用这个函数在记录集中移动。 Sqlite3_close(), 关闭数据库文件 还有一系列的函数,用于从记录集字段中获取数据,如 sqlite3_column_text(), 取text类型的数据。 sqlite3_column_blob(),取blob类型的数据 sqlite3_column_int(), 取int类型的数据 (1)打开或者创建数据库 sqlite3 *database; int result = sqlite3_open(/path/databaseFile, database); 如果/path/databaseFile不存在,则创建它,否则打开它。如果result的值是SQLITE_OK,则表明我们的操作成功。 注意上述语句中数据库文件的地址字符串前面没有@字符,它是一个C字符串。将NSString字符串转成C字符串的方法是: const char *cString = [nsString UTF8String]; (2)关闭数据库 sqlite3_close(database); (3)创建一个表格 char *errorMsg; const char *createSQL = CREATE TABLE IF NOT EXISTS PEOPLE (ID INTEGER PRIMARY KEY AUTOINCREMENT, FIELD_DATA TEXT); int result = sqlite3_exec(database, createSQL, NULL, NULL, errorMsg); 执行之后,如果result的值是SQLITE_OK,则表明执行成功;否则,错误信息存储在errorMsg中。 sqlite3_exec这个方法可以执行那些没有返回结果的操作,例如创建、插入、删除等。 (4)查询操作 NSString *query = @SELECT ID, FIELD_DATA FROM FIELDS ORDER BY ROW; sqlite3_stmt *statement; int result = sqlite3_prepare_v2(database, [query UTF8String], -1, statement, nil); 如果result的值是SQLITE_OK,则表明准备好statement,接下来执行查询: while (sqlite3_step(statement) == SQLITE_ROW) { int rowNum = sqlite3_column_int(statement, 0); char *rowData = (char *)sqlite3_column_text(statement, 1); NSString *fieldValue = [[NSString alloc] initWithUTF8String:rowData]; // Do something with the data here } sqlite3_finalize(statement); 使用过其他数据库的话应该很好理解这段语句,这个就是依次将每行的数据存在statement中,然后根据每行的字段取出数据。 (5)使用约束变量 实际操作时经常使用叫做约束变量的东西来构造SQL字符串,从而进行插入、查询或者删除等。 例如,要执行带两个约束变量的插入操作,第一个变量是int类型,第二个是C字符串: char *sql = insert into oneTable values (?, ?);; sqlite3_stmt *stmt; if (sqlite3_prepare_v2(database, sql, -1, stmt, nil) == SQLITE_OK) { sqlite3_bind_int(stmt, 1, 235); sqlite3_bind_text(stmt, 2, valueString, -1, NULL); } if (sqlite3_step(stmt) != SQLITE_DONE) NSLog(@Something is Wrong!); sqlite3_finalize(stmt

文档评论(0)

ijrsCaUyAg + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档