一个完整的SQLite的应用DEMO

原文地址:一个完整的SQLite的应用DEMO 作者:殷昭
自己写了一个iphone应用sqlite的DEMO;
涉及到添加,查询和事务管理
关键代码

 

if (sqlite3_open([[self databasePath] UTF8String],&database) != SQLITE_OK) {

 

sqlite3_close(database);

 

NSAssert(0,@"open database faild!");

 

}




char *erroMsg;


NSString *createSQL = [NSString stringWithFormat:@"CREATE TABLE IF NOT EXISTS %@(ROW INTEGER PRIMARY KEY,NAME TEXT,AGE TEXT,SEX TEXT)",TableName];


if (sqlite3_exec(database, [createSQL UTF8String], NULLNULL, &erroMsg) != SQLITE_OK) {

 

sqlite3_close(database);

 

NSAssert1(0,@"create table %@ faild",TableName);

 

NSAssert1(0,@"the error is %s",erroMsg);

 

}




NSString *insertUser = [NSString stringWithFormat:@"INSERT INTO %@(NAME,AGE,SEX) VALUES('%@','%@','%@')",TableName,new_user.name,new_user.age,new_user.sex];


NSLog(@"%@",insertUser);


if (sqlite3_exec (database, [insertUser UTF8String], NULLNULL, &erroMsg) != SQLITE_OK)


{

 

NSAssert1(0@"Error updating tables: %s", erroMsg);

 

}




User *user = [[User allocinit];


NSString *countSQL = [NSString stringWithFormat:@"SELECT ROW,NAME,AGE,SEX FROM UserTable WHERE ROW = %i",id];


sqlite3_stmt *statement;


if (sqlite3_prepare_v2(database, [countSQL UTF8String], -1, &statement, nil) == SQLITE_OK) {

 

 

 

while (sqlite3_step(statement)==SQLITE_ROW) {

user.id = [NSString stringWithFormat:@"%d",sqlite3_column_int(statement,0)];

user.name = [NSString stringWithFormat:@"%s",sqlite3_column_text(statement,1)];

user.age =[NSString stringWithFormat:@"%s",sqlite3_column_text(statement,2)];

user.sex = [NSString stringWithFormat:@"%s",sqlite3_column_text(statement,3)];

}

 

sqlite3_finalize(statement);

 

return user;

}

 

希望对大家有用:SQLiteDEMO

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值