SQLite常用语句
// 错误存储路径
- (NSString *)dataFilePath{
NSString *dbPath = [NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES) lastObject];
NSString *db_absoluteString = [dbPath stringByAppendingPathComponent:@"personal.db"]; // 找到personal.db数据库
NSLog(@"db_absoluteString: %@",db_absoluteString);
return db_absoluteString; // 返回数据库的路径
}
//插入数据
- (NSString *)insertDBFilePath{
NSString *dbPath = [NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES) lastObject];
NSString *db_absoluteString = [dbPath stringByAppendingPathComponent:@"cmread.sqlite"];
// NSLog(@"db_absoluteString: %@",db_absoluteString);
return db_absoluteString;
}
//获得所有个人信息
- (NSMutableArray *)getStoredPersons{
// 打开数据库
// UTFString格式
// 数据文件路径
if(sqlite3_open([[self dataFilePath] UTF8String],&database) !=SQLITE_OK){
sqlite3_close(database); // 关闭数据库
NSLog(@"open database failed!");
return nil;
}
NSMutableArray *array = [[NSMutableArray alloc] init];
NSString *query = [[NSString alloc] initWithFormat: @"select zaccountname,zlastlogintime,zlogincount from zLoginRecord order by zlastlogintime desc"];
sqlite3_stmt *statement;
if(sqlite3_prepare_v2(database, [query UTF8String],-1,&statement,nil) == SQLITE_OK){
while(sqlite3_step(statement) == SQLITE_ROW){
CMLoginRecord *loginRecord = [[CMLoginRecord alloc] init];
char *loginRecordKey = (char *)sqlite3_column_text(statement, 0);
if (loginRecordKey == NULL) {
loginRecord.accountname = nil;
}else {
NSString *_loginRecord = [[NSString alloc] initWithUTF8String:loginRecordKey];
loginRecord.accountname = _loginRecord;
}
char *lastlogintimeKey = (char *)sqlite3_column_text(statement, 1);
if (lastlogintimeKey == NULL) {
loginRecord.lastlogintime = nil;
}else {
NSString *_lastlogintime = [[NSString alloc] initWithUTF8String:lastlogintimeKey];
loginRecord.lastlogintime = _lastlogintime;
}
int logincount = sqlite3_column_int(statement, 2);
loginRecord.logincount = @(logincount);
[array addObject:loginRecord];
}
sqlite3_finalize(statement);
}
sqlite3_close(database);
return array;
}
// 插入个人信息
- (NSInteger)insertPersonl:(NSMutableArray *)array{
BOOL isInsertSuccess = NO;
// 打不开的话,就关闭
if(sqlite3_open([[self insertDBFilePath] UTF8String],&database) !=SQLITE_OK){
sqlite3_close(database);
return 1;
}
char *insert = "insert into zAccount(zaccountname,zlastlogintime,zlogincount) values(?,?,?);";// 要记住分号
for (CMLoginRecord *loginRecord in array) {
sqlite3_stmt *stmt;
if(sqlite3_prepare_v2(database,insert,-1,&stmt,nil) == SQLITE_OK){
sqlite3_bind_text(stmt, 1, [loginRecord.accountname UTF8String],-1,NULL);
sqlite3_bind_text(stmt, 2, [loginRecord.lastlogintime UTF8String],-1,NULL);
sqlite3_bind_int(stmt, 3, [loginRecord.logincount intValue]);
}
if(sqlite3_step(stmt)!= SQLITE_DONE){
NSLog(@"Error insert data into zLoginRecord error !");
}else{
//删除原来的数据库
isInsertSuccess = YES;
}
sqlite3_finalize(stmt);
}
sqlite3_close(database);
if (isInsertSuccess) {
NSString *path = [self dataFilePath];
NSFileManager *fileManager = [NSFileManager defaultManager];
if ([fileManager fileExistsAtPath:path]) {
[fileManager removeItemAtPath:path error:nil];
}
NSLog(@"删除原来的数据库");
}
return 0;
}
SQLite常用语句的更多相关文章
- Sqlite常用sql语句
sqlite常用sql语句 --返回UTC时间 select CURRENT_TIMESTAMP; --返回本地时间 select datetime(CURRENT_TIMESTAMP,'localt ...
- iOS开发数据库篇—SQLite常用的函数
iOS开发数据库篇—SQLite常用的函数 一.简单说明 1.打开数据库 int sqlite3_open( const char *filename, // 数据库的文件路径 sqlite3 * ...
- ORM数据库框架 SQLite 常用数据库框架比较 MD
Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...
- Sqlite 常用函数推荐
Sqlite 常用函数 1 .打开数据库: 说明:打开一个数据库,文件名不一定要存在,如果此文件不存在, sqlite 会自动创建.第一个参数指文件名,第二个参数则是定义的 sqlite3 ** 结构 ...
- sqlite常用的命令-增删改查
一.查看版本信息: #sqlite3 -version 二.sqlite3常用命令 1.当前目录下建立或打开test.db数据库文件,并进入sqlite命令终端,以sqlite>前缀标识: 2. ...
- SQLite 常用函数
SQLite 常用函数 参考: SQLite 常用函数 | 菜鸟教程http://www.runoob.com/sqlite/sqlite-functions.html SQLite 常用函数 SQL ...
- sqlmap选项卡介绍及常用语句
sqlmap的使用方式:python sqlmap.py [options]: sqlmap中一共有以下十六个选项卡: 1.帮助选项卡: 2.Target(目标选项卡): 3.Request(请求选项 ...
- SQLite入门语句之HAVING和DISTINCT
一.SQLite入门语句之HAVING HAVING 子句允许指定条件来过滤将出现在最终结果中的分组结果. WHERE 子句在所选列上设置条件,而 HAVING 子句则在由 GROUP BY 子句创建 ...
- SQL server 常用语句
SQL Server中常用的SQL语句 1.概述 2.查询概述 3.单表查询 4.连接查询 5.带有exists的相关子查询 6.SQL的集合操作 7.插入操作 8.删除操作 9.修改操作 10. ...
随机推荐
- 面向小白的JS笔记 - #Codecademy#学习笔记
前言 最初浏览过<JavaScript秘密花园>,前一段时间读过一点点<JavaScript语言精粹>和一点点<JavaScript高级程序设计>(一点点是指都只是 ...
- Ubuntu 14.04中安装最新版Eclipse
Ubuntu 14.04中安装最新版Eclipse 来源:Linux社区 作者:Linux 1.安装OpenJDK Java 7 如果你的系统中没有安装Java,我们需要按照如下步骤事先安装好 ...
- 世界超强完美DIY 电子奇才五年全手工制作CPU
世界超强完美DIY 电子奇才五年全手工制作CPU 2015-07-08 极客范 (点击上方公众号,可快速关注我们) 在如今越来越靠程序化.流水线作业来完成生产的制造业中,想找一件手工打造的产品,真是越 ...
- 通过样式class 判断多个checkbox redio 是否都选中
var count = "${count}"; for(var i=1;i<=count;i++){ var flag = false; if($("input[c ...
- Installscript如何给自定义路径的变量赋值
installscript自定义路径的赋值 TextSub("MY_WINDOWS_TEMP_SQL2008_DIR")="C:\\Windows\\temp2\\&q ...
- 【转】oracle内存分配和调优总结
转自 http://blog.itpub.net/12272958/viewspace-696834/ 一直都想总结一下oracle内存调整方面的知识,最近正好优化一个数据库内存参数,查找一些资料并且 ...
- 将程序部署到weblogic出现乱码问题
出现错误: 将文件部署到weblogic上,在linux环境下运行程序时出现乱码问题 原因: (1)可能是linux系统的编码问题 解决办法:登陆weblogic 输入命令: cd /etc/sysc ...
- uploadfy api中文文档
Uploadify是一款基于JQuery的优秀的文件/图片上传的插件,有基于Flash和HTML5两种版本. Uploadify/uploadifive主要特点有:1. 多文件上传2. 个性化设置3. ...
- DNS学习笔记之DNS理论知识
DNS: Domain Name System (将域名和ip地址相互转化) 域名是一个范围,例如baidu.com,.com.而www.baidu.com是个主机名,即FQDN: Full Qual ...
- 如果没有按照正常的先装iis后装.net的顺序,可以使用此命令重新注册一下:
32位的Windows:---------------------------------------------------------------------------1. 运行->cmd ...