- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 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
您可能关注的文档
- 2012电子表格处理.docx
- 2012电子图板基础技巧.doc
- 2012电子表格应用基础九.docx
- 2012电子表格系统.doc
- 2012电子表格系统综合练习及答.doc
- 2012电子表格练习.doc
- 2012电子表格软件.doc
- 2012电容式传感器的工作原理及其在压力测量中的应用.doc
- 2012电影拍摄技巧.doc
- 2012电梯考核方案.doc
- 2025年生物多样性保护项目可行性研究报告.docx
- 2025年区域性品牌农产品营销项目可行性研究报告.docx
- 2025年零碳建筑设计创新项目可行性研究报告.docx
- 2025年诱导式虚拟培训项目可行性研究报告.docx
- 2025年工业互联网应用项目可行性研究报告.docx
- 2025年物联网智能制造系统项目可行性研究报告.docx
- 2025年大学《大气科学》专业题库—— 大气层与地球物理过程.docx
- 2025年AI 翻译助手应用项目可行性研究报告.docx
- 北师大版小学数学 2 年级上册《100 以内加减法复习练习》练习题.doc
- 北师大版初中化学 9 年级下册《酸的化学性质(与金属反应)》练习题.doc
原创力文档


文档评论(0)