- 浏览: 99247 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
softlanh:
如果我用第一种方法截取一个不规则图形,截取后只保留需要的截取后 ...
iOS 画出不规则图形 -
netkiller.github.com:
世上竟有Obj-C 这么变态的语言, []的使用都快赶上 pe ...
获取iphone键盘所在view -
374016526:
此功能建议大家不要使用,如果要显示网页的东西还是自定义或UIW ...
UITextView显示HTML内容,实现显示不同的字体和文字颜色 -
qichunren:
在哪里在哪里、
iPhone闹钟
iphone开发中sqlite3的操作说明(转载)
ibsqlite3.0.dylib文件地址:
/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS2.2.sdk/usr/lib/libsqlite3.0.dylib
2,代码中的操作:
那么接下来是代码了。
1 首先获取iPhone上sqlite3的数据库文件的地址
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *path = [documentsDirectory stringByAppendingPathComponent:@"database_name"];
2 打开iPhone上的sqlite3的数据库文件
sqlite3 *database;
sqlite3_open([path UTF8String], &database);
3 准备sql文---sql语句
sqlite3_stmt *stmt;
const char *sql = "SELECT * FROM table_name WHERE pk=? and name=?";
sqlite3_prepare_v2(database, sql, -1, &stmt, NULL);
4 邦定参数
// 邦定第一个int参数
sqlite3_bind_int(stmt, 1, 1);
// 邦定第二个字符串参数
sqlite3_bind_text(stmt, 2, [title UTF8String], -1, SQLITE_TRANSIENT);
5 执行sql文
sqlite3_step(stmt);
6 释放sql文资源
sqlite3_finalize(stmt);
7 关闭iPhone上的sqlite3的数据库
sqlite3_close(database);
http://hi.baidu.com/clickto/blog/item/0c6904f787c34125720eec87.html
以下演示一下使用sqlite的步骤,先创建一个数据库,然后查询其中的内容。2个重要结构体和5个主要函数: sqlite3 *pdb, 数据库句柄,跟文件句柄FILE很类似 sqlite3_stmt *stmt, 这个相当于ODBC的Command对象,用于保存编译好的SQL语句 sqlite3_open(), 打开数据库 sqlite3_exec(), 执行非查询的sql语句 sqlite3_prepare(), 准备sql语句,执行select语句或者要使用parameter bind时,用这个函数(封装了sqlite3_exec). Sqlite3_step(), 在调用sqlite3_prepare后,使用这个函数在记录集中移动。 Sqlite3_close(), 关闭数据库文件 还有一系列的函数,用于从记录集字段中获取数据,如 sqlite3_column_text(), 取text类型的数据。 sqlite3_column_blob(),取blob类型的数据 sqlite3_column_int(), 取int类型的数据 PreparedStatement方式处理SQL请求的过程 特点:可以绑定参数,生成过程。执行的时候像是ADO一样,每次返回一行结果。 1. 首先建立statement对象: int sqlite3_prepare( sqlite3 *db, /* Database handle */ const char *zSql, /* SQL statement, UTF-8 encoded */ int nBytes, /* Length of zSql in bytes. */ sqlite3_stmt **ppStmt, /* OUT: Statement handle */ const char **pzTail /* OUT: Pointer to unused portion of zSql */ ); 2. 绑定过程中的参数(如果有没有确定的参数) int sqlite3_bind_xxxx(sqlite3_stmt*, int, ...); 第二个int类型参数-表示参数的在SQL中的序号(从1开始)。 第三个参数为要绑定参数的值。 对于blob和text数值的额外参数: 第四参数是字符串(Unicode 8or16)的长度,不包括结束'\0'。 第五个参数,类型为void(*)(void*),表示SQLite处理结束后用于清理参数字符串的函数。 没有进行绑定的未知参数将被认为是NULL。 3. 执行过程 int sqlite3_step(sqlite3_stmt*); 可能的返回值: *SQLITE_BUSY: 数据库被锁定,需要等待再次尝试直到成功。 *SQLITE_DONE: 成功执行过程(需要再次执行一遍以恢复数据库状态) *SQLITE_ROW: 返回一行结果(使用sqlite3_column_xxx(sqlite3_stmt*,, int iCol)得到每一列的结果。 再次调用将返回下一行的结果。 *SQLITE_ERROR: 运行错误,过程无法再次调用(错误内容参考sqlite3_errmsg函数返回值) *SQLITE_MISUSE: 错误的使用了本函数(一般是过程没有正确的初始化) 4. 结束的时候清理statement对象 int sqlite3_finalize(sqlite3_stmt *pStmt); 应该在关闭数据库之前清理过程中占用的资源。 5. 重置过程的执行 int sqlite3_reset(sqlite3_stmt *pStmt); 过程将回到没有执行之前的状态,绑定的参数不会变化。 其他工具函数 1. 得到结果总共的行数 int sqlite3_column_count(sqlite3_stmt *pStmt); 如果过程没有返回值,如update,将返回0 2. 得到当前行中包含的数据个数 int sqlite3_data_count(sqlite3_stmt *pStmt); 如果sqlite3_step返回SQLITE_ROW,可以得到列数,否则为零。 3. 得到数据行中某个列的数据 sqlite3_column_xxx(sqlite3_stmt*, int iCol); 在sqlite3_step返回SQLITE_ROW后,使用它得到第iCol列的数据。 其中的xxx代表: blob:指向保存数据内存的指针 bytes, bytes16: 得到该blob类型数据的大小,或者text转换为UTF8/UTF16的字符串长度。 double, int, int64: 数值 text,text16:字符串指针 type:该列的数据类型(SQLITE_INTEGER,SQLITE_FLOAT,SQLITE_TEXT,SQLITE_BLOB,SQLITE_NULL) 注意:如果对该列使用了不同与该列本身类型适合的数据读取方法,得到的数值将是转换过的结果。 4. 得到数据行中某个列的数据的类型 int sqlite3_column_type(sqlite3_stmt*, int iCol); 返回值:SQLITE_INTEGER,SQLITE_FLOAT,SQLITE_TEXT,SQLITE_BLOB,SQLITE_NULL 使用的方法和sqlite3_column_xxx()函数类似。
发表评论
-
ios自定义framework
2015-07-14 16:33 645ios自定义framework,生成framework后,真 ... -
ios内付费
2015-07-14 16:15 824近年来写了很多IOS的程序,内付费也用到不少,使用IOS的 ... -
UIView 中加入的cocos2d,背景透明
2015-05-11 11:54 1377要点是首先pixelFormat:kEAGLColorForm ... -
CCDataVisitor.h, #include <string> 'string' file not found
2015-03-26 15:55 3385CCDataVisitor.h, #include < ... -
his device is no longer connected.
2015-01-15 15:09 2388his device is no longer connec ... -
idfa检查
2014-05-07 15:29 900cd到工程目录下然后执行下面的命令 grep -r ... -
UIColor 转 16进制颜色值
2014-04-25 15:27 915+ (NSString *)ToHex:(int)tmpid ... -
iOS 富文本控件
2014-04-25 15:24 924使用方式: NSString *t = [NSStr ... -
两个动画效果
2014-04-25 15:19 1070// 心跳动画 + (void)heartbeatView ... -
获取某一个class的私有Api
2014-04-25 15:17 772//知道怎么用私有api,要怎么获得 // ... -
iOS 画出不规则图形
2013-12-13 11:44 8468以下为大家提供一种绘制不规则图形的方法,实现原理利用图像的遮 ... -
关于IOS App唯一标示
2013-11-13 17:18 1386大家都知道苹果对于 ... -
关于IOS,UIViewController屏幕旋转
2013-07-23 15:30 6120关于ios上面旋转的问题,ios6以下我们大家都知道, - ... -
获取iphone键盘所在view
2012-12-13 14:31 1159UIView* kbView = nil; ... -
ios开发小知识
2012-07-17 14:18 1691ios开发小知识2(转自cc) 退 ... -
UIWebView获取html内容
2012-06-08 22:04 1827获取所有html:NSString *lJs = @&qu ... -
CALayer 缩放动画
2012-05-03 15:31 2752//放大 CAKeyframeAnim ... -
CALayer 按指定的点 运动
2012-05-03 15:30 1480CGMutablePathRef thePath = C ... -
目前最好用的IOS网易微博SDK
2012-04-09 15:36 1432网易微博上的SDK看上去不太明了,小弟这里对其进行了简单的封装 ... -
iPhone开发常见的错误
2012-02-06 16:51 1367开始iPhone的Practise Project,其 ...
相关推荐
本实例将聚焦于如何在iPhone应用中使用SQLite3进行数据持久化操作。 SQLite3是一个嵌入式的SQL数据库引擎,它不需要独立的服务进程,可以直接集成到应用程序中。与Core Data相比,SQLite3提供了更直接的SQL语句操作...
### iPhone开发SQLite数据库使用 #### 一、引言 随着移动应用开发的不断发展,数据库管理成为了一项重要的技能。SQLite作为一种轻量级的关系型数据库,因其简单易用、占用资源少等特点,在iOS开发中得到了广泛的...
Sqlite轻量级数据库,广泛应用于智能设备:wince、android、iphone、mego设备保存数据都采用了该数据库; 能进行数据恢复的手机应用:短信、联系人、通话记录、浏览器、邮件等; 能进行数据恢复的聊天软件:QQ、...
### Cocoa Touch for iPhone OS 3 知识点详解 #### 一、概述 《Cocoa Touch for iPhone OS 3》是一本专为iOS开发者撰写的书籍,主要关注于早期版本的iPhone操作系统——iPhone OS 3(现在已演变为iOS)。本书由...
It was first designed to work with [MonoTouch](http://xamarin.com) on the iPhone, but has grown up to work on all the platforms (Mono for Android, .NET, Silverlight, WP7, WinRT, Azure, etc.). ...
You'll also learn how to save and retrieve your data using SQLite, iPhone's built-in database management system. In addition, you'll also learn about Core Data, an important persistence mechanism ...
This book leads you through the essential concepts and new iOS 10 SDK and Swift 3 programming language APIs to build iPhone and iPad database driven applications using the defacto standard for data ...
本文将深入探讨“ios应用源码之火车余票查询 for iPhone 2018128”这一项目,分析其背后的实现原理和技术栈。 首先,此应用的核心功能是实时获取火车票余票信息,这需要与铁路12306官网或其他相关接口进行数据交互...
your data using SQLite, iPhone's built-in database management system. In addition, you'll also learn about Core Data, an important persistence mechanism that has just been added with SDK 3. And ...
your data using SQLite, iPhone's built-in database management system. In addition, you'll also learn about Core Data, an important persistence mechanism that has just been added with SDK 3. And ...
* Connect your iPhone to the outside world with networking, exploit the power of a relational database with SQLite, and rock out with first-class support for audio and video. * Make use of the iPhone...
【标题】"IOS应用源码——火车余票查询 for iphone.zip"揭示了这是一个针对iOS平台的iOS应用开发项目,主要用于查询火车余票信息。在这个项目中,开发者可能使用了Apple的Swift或Objective-C编程语言来编写代码,...
库的路径通常位于`/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS SDK版本/usr/lib/`。 2. 数据库文件路径 在iOS中,SQLite数据库文件通常存储在应用的Documents目录下。可以使用`...
This is source code for Beginning iPhone Development: Exploring the iPhone SDK by Dave Mark and Jeff LaMarche. All of the projects from the book are contained here. Each folder's name begins with a ...
### Objective-C for iPhone Developers #### 一、Objective-C 概述 Objective-C 是一种面向对象的编程语言,它是在 C 语言的基础上发展起来的。Objective-C 的设计目标是为了支持更高级别的程序设计,并且能够更好...
3. 探索使用SQLite开发iOS(iPhone)和Android应用程序。 SQLite是全球成千上万种产品选择的解决方案,这些产品包括手机、GPS设备、机顶盒以及网络浏览器等。几乎可以肯定的是,你每天都在不知不觉中使用SQLite。 ...
and you’ll learn techniques to save and retrieve your data using SQLite, iPhone’s built-in database management system and Core Data, the standard for persistence that Apple brought to iOS with the ...