在iphone上,当我们需要将数据存入数据库时,有多种方法,但是如果所要存入得数据里面有特殊字符,例如:‘,%等时,我们采用一些方法插入数据库就会出错。因此一般情况下建议都使用绑定bind.
- (void
) InsertIntoDatabase:(CStationInfo
*)sInfo
{
[
self
OpenDatabase];
char
*sql =
"INSERT INTO Feature (id, name, slogan) VALUES (?, ?, ?)";
if
(
sqlite3_prepare_v2
(
database, sql, -
1
, &
insert_statement,
NULL
) !=
SQLITE_OK
)
{
Assert
(
0
,
"Failed to prepare insert statement for '%s'.",
sqlite3_errmsg
(
database
));
}
// -- prepare the values
sqlite3_bind_text(
insert_statement
,
1
, [[
NSString
stringWithFormat:
@"%d"
, sInfo.
stationID
]
UTF8String],-
1
,
SQLITE_TRANSIENT
);
sqlite3_bind_text(
insert_statement
,
2
, [sInfo.
name
UTF8String], -
1
,
SQLITE_TRANSIENT
);
sqlite3_bind_text(
insert_statement
,
3
, [sInfo.
slogan
UTF8String], -
1
,
SQLITE_TRANSIENT
);
int32 success =
sqlite3_step
(
insert_statement);
sqlite3_reset
(
insert_statement);
if
(success != SQLITE_ERROR
)
{
NSLog
(
@"insert is success");
}
else
{
NSLog
(
@"insert is failse");
Assert
(
0
,
"Failed to insert into database with message '%s'.",
sqlite3_errmsg
(
database
));
}
sqlite3_close(
database
);
}
需要从数据库中查询出来时,可以使用:
- (NSMutableArray
*)SelectFromDatabase
{
NSLog
(
@"%%%%%%%%%%");
[
self
OpenDatabase];
char
* sql =
"select * from Feature";
if
(!list
) {
[
list
removeAllObjects];
}
if
(
sqlite3_prepare_v2
(
database, sql, -
1
, &
select_statement,
nil
)==
SQLITE_OK
)
{
while
(
sqlite3_step
(
select_statement)==
SQLITE_ROW
)
{
NSString
*
id
= [
NSString
stringWithUTF8String: (
char
*)
sqlite3_column_text(
select_statement
,
0
)];
NSString
*name = [
NSString
stringWithUTF8String: (
char
*)
sqlite3_column_text(
select_statement
,
1
)];
NSString
*slogan = [
NSString
stringWithUTF8String: (
char
*)
sqlite3_column_text(
select_statement
,
2
)];
CStationInfo
*sInfo=[[CStationInfo
alloc
] InitWithName
:name slogan
:slogan stationID
:[id
integerValue
]];
[list
addObject
:sInfo];
[sInfo release
];
}
}
sqlite3_reset
(
select_statement);
sqlite3_close(
database
);
return
list
;
}
在此时需要注意得是:
当我们使用绑定bind插入数据库
时,下标是从1开始
的!!!!!!!!
当我们一般情况使用,如从数据库中读取数据
时,下标是从0开始
的。
而且,我们对
sqlite数据库
操作时,有
很多的限制
。例如:top 100 不能用。
相关推荐
sqlite persistent objects iphone数据库操作源码sqlite persistent objects iphone数据库操作源码sqlite persistent objects iphone数据库操作源码
使用SQLite创建数据库,然后用FMDB对其操作得到数据。相信你下了后一定能明白是怎么用FMDB来实现操作数据iphone数据库的。
iphone mysql数据库操作代码例子.docx
iphone mysql数据库操作代码例子_.docx
http://blog.csdn.net/totogo2010/article/details/7702207 IOS sqlite数据库操作 iphone 例子
iphone开发SQLite数据库使用 简单方便
iPhone iOS 数据库查询 源代码
使用数据库技术访问资源信息,保存资源信息
iphone 远程连接 mysql 实例
自己找的有关sqlite3的一些基本知识,里边也有几个例子,sql语句等等,希望对你有用,
iphone调用aws.amazon.com的云数据库simpledb 包含IOS例子源代码和api手册 用免费的数据库服务器,看看大家用得着不,可以省一笔服务器成本了,祝大家早日做出挣钱的游戏 一次失败的腾讯面试真是激励自己努力学习哈....
FMDB数据库iPhone版本,有较全面的功能,
Iphone数据库操作,hone 中使用名为 SQLite 的数据库管理系统。它是一款轻型的数据库,是遵守ACID的关联式数据库管理系统,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它 占用资源非常的低,...
iphone4操作指南iphone4操作指南iphone4操作指南
写了一个比较简单的SQLite3的简单demo只实现了增加 更新 删除 获取全部数据 查找 数据库操作部分有详细注释 界面也比较简陋主要是实现一下数据库部分 有问题请与我邮件联系 decemberd@163.com 谢谢
这是我学习iPhone开发时做的一个小练习,基于SQLite数据库的列车时刻查询软件,纯属入门级,初学iPhone开发的朋友可以看看,聊胜于无:) 备注:项目工程基于XCODE 4.1
这个程序需要在Mac 10.7或更新的版本上运行。 这里我用的数据库是sqlite3数据库,里面是用代码创建的表单。 所以这个很适合初学者学数据库。
IPhone 中使用SQLlite数据库开发的实例代码。需要这个功能的可以下载学习。
phone模拟器能在电脑上模拟iphone手机的操作,该iphone模拟器为adobe air应用,能在电脑上完美模拟iphone手机操作功能,可跨平台运行。 这款iphone模拟器iphone浏览器功能可正常使用,其它功能目前仅为初步的模拟,...