美文网首页
SQL二维码跳转存值

SQL二维码跳转存值

作者: 捏兜兜 | 来源:发表于2017-10-25 15:28 被阅读0次

DataBase 。h

#import#import "Yly.h"#import@interface SqliteData : NSObject

// 定义全局变量

{

sqlite3 *db;

}

// 单例方法

+(instancetype)initData;

// 初始化数据库

-(void)initSqlData;

// 初始化数据库表格

-(void)initSqlTableData;

// 添加数据

-(void)addSqlData:(Yly *)data;

// 修改数据

-(void)changeSqlData:(Yly *)data;

// 删除数据

-(void)deleteSqlData:(NSInteger)deleData;

// 查询数据

-(NSMutableArray *)showSqlAllArr;

// 关闭数据库

-(void)closeSqlData;

sqlData (DataBase)

#import "SqliteData.h"

// 定义一个静态变量

static SqliteData *sql = nil;

@implementation SqliteData

// 单例方法

+(instancetype)initData

{

if (!sql) {

sql = [[SqliteData alloc] init];

}

return sql;

}

// 初始化数据库

-(void)initSqlData

{

// 创建沙盒路径

NSString *path = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];

// 拼接

NSString *newPath = [path stringByAppendingString:@"/1511E.db"];

NSLog(@"-------------%@",newPath);

// 判断

if (sqlite3_open([newPath UTF8String], &db) == SQLITE_OK) {

NSLog(@"数据库打开成功");

[self initSqlTableData];

}else{

NSLog(@"数据库打开失败");

}

}

// 初始化数据库表格

-(void)initSqlTableData

{

// 创建sql语句

const char *sql = "create table if not exists Ylys(ylyID integer primary key, pathStr text, textPath text)";

// 预编译指针

sqlite3_stmt *stmt;

// 打开数据库接口

sqlite3_prepare_v2(db, sql, -1, &stmt, nil);

// 判断

if (sqlite3_step(stmt) == SQLITE_DONE) {

NSLog(@"数据库表格打开成功");

}else{

NSLog(@"数据库表格打开失败");

}

// 销毁接口

sqlite3_finalize(stmt);

}

// 添加数据

-(void)addSqlData:(Yly *)data

{

// 添加 sql 语句

const char *sql = "insert into Ylys values(null, ?, ?)";

// 预编译指针

sqlite3_stmt *stmt;

// 打开数据库接口

sqlite3_prepare_v2(db, sql, -1, &stmt, nil);

// 绑定数据库接口

sqlite3_bind_text(stmt, 1, [data.pathStr UTF8String], -1, SQLITE_TRANSIENT);

sqlite3_bind_text(stmt, 2, [data.textPath UTF8String], -1, SQLITE_TRANSIENT);

// 执行预编译接口

sqlite3_step(stmt);

// 销毁接口

sqlite3_finalize(stmt);

}

// 修改数据

-(void)changeSqlData:(Yly *)data

{

// 修改 sql 语句

const char *sql = "update Ylys set pathStr = ?, textPath = ? where ylyID = ?";

// 预编译指针

sqlite3_stmt *stmt;

// 打开数据库接口

sqlite3_prepare_v2(db, sql, -1, &stmt, nil);

// 绑定数据库接口

sqlite3_bind_text(stmt, 1, [data.pathStr UTF8String], -1, SQLITE_TRANSIENT);

sqlite3_bind_text(stmt, 2, [data.textPath UTF8String], -1, SQLITE_TRANSIENT);

// 绑定主键 id

sqlite3_bind_int(stmt, 3, (int)(data.ylyID));

// 执行预编译指针

sqlite3_step(stmt);

// 销毁接口

sqlite3_finalize(stmt);

}

// 删除数据

-(void)deleteSqlData:(NSInteger)deleData

{

// 删除 sql 语句

const char *sql = "delete from Ylys where ylyID = ?";

// 预编译指针

sqlite3_stmt *stmt;

// 打开数据库接口

sqlite3_prepare_v2(db, sql, -1, &stmt, nil);

// 删除主键 id

sqlite3_bind_int(stmt, 1, (int)(deleData));

// 执行预编译指针

sqlite3_step(stmt);

// 销毁接口

sqlite3_finalize(stmt);

}

// 查询数据

-(NSMutableArray *)showSqlAllArr

{

// 查询 sql 语句

const char *sql = "select * from Ylys";

// 预编译指针

sqlite3_stmt *stmt;

// 打开数据库接口

sqlite3_prepare_v2(db, sql, -1, &stmt, nil);

// 创建数组

NSMutableArray *arr = [NSMutableArray array];

while (sqlite3_step(stmt) == SQLITE_ROW) {

// 初始化类

Yly *yyy = [[Yly alloc] init];

// 找到主键id

yyy.ylyID = sqlite3_column_int(stmt, 0);

yyy.pathStr = [NSString stringWithUTF8String:(const char *)sqlite3_column_text(stmt, 1)];

yyy.textPath = [NSString stringWithUTF8String:(const char *)sqlite3_column_text(stmt, 2)];

// 将数据添加到数组

[arr addObject:yyy];

}

// 销毁接口

sqlite3_finalize(stmt);

// 返回 数组

return arr;

}

// 关闭数据库

-(void)closeSqlData

{

sqlite3_close(db);

}

// 按钮的点击事件

-(void)didClickBtn:(UIButton *)sender

{

imgView.image = [QRCodeGenerator qrImageForString:tf.text imageSize:imgView.frame.size.width];

// 转换图片格式

NSData *imgData = UIImagePNGRepresentation(imgView.image);

// 获取沙盒路径

NSString *paths= [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES) objectAtIndex:0];

// 拼接图片的文件路径

NSString *imageFilePath = [NSString stringWithFormat:@"%@/%@.png",paths,tf.text];

NSLog(@"%@", [imgData writeToFile:imageFilePath atomically:YES]?@"存储成功":@"存储失败");

NSLog(@"0000-----======%@",imageFilePath);

Message *yly = [[Message alloc] init];

yly.pathStr = imageFilePath;

yly.textPath = tf.text;

[[SqliteData initData] initSqlData];

[[SqliteData initData] addSqlData:yly];

[[SqliteData initData] closeSqlData];

}

UITwoViewController

// 设置 内容

[[SqliteData initData] initSqlData];

marr = [[SqliteData initData] showSqlAllArr];

[[SqliteData initData] closeSqlData];

[myTable reloadData];

cell获取内容

NSLog(@"===%@",[marr[indexPath.row] textPath]);

cell.imageView.image = [UIImage imageWithContentsOfFile:[marr[indexPath.row] pathStr]];

cell.textLabel.text = [marr[indexPath.row] textPath];

相关文章

  • SQL二维码跳转存值

    DataBase 。h #import#import "Yly.h"#import@interface Sqlit...

  • Android sqlite数据转存到SQL

    一 流程图 二 详解 android 自带的sqlite可以方便的存储数据,但是不够安全.使用sqlcipher可...

  • SQL性能优化原则-前言

    1、SQL执行过程客户端提交SQL->计算SQL字符的HASH值->从SQL缓存区中查找是否有相同的HASH值->...

  • mysqldump导出数据

    mysqldump是mysql用于转存储数据库的客户端程序·。它主要产生一系列的SQL语句,可以封装到文件,该文件...

  • 部分spark参数解析

    配置值说明spark.sql.parquet.adaptiveFileSplittrue不知道spark.sql....

  • Mybatis 复用

    基础 sql 定义 注意:这里传值使用了${cdpId},使用 # 会报错sql 复用

  • mysql的sql_mode设置

    1、查询sql_mode 2、设置sql_mode 3、sql_mode常用值 ONLY_FULL_GROUP_B...

  • mysqldump备份和恢复

    mysqldump是mysql用于转存储数据库的实用程序。它主要产生一个SQL脚本,其中包含从头重新创建数据库所必...

  • mysql5.7报错this is incompatible w

    1、查看sql_mode | 01 | select @@global.sql_mode; | 查询出来的值为: ...

  • 转存

    待我长发及腰,将军归来可好? 此身君子意逍遥,怎料山河萧萧。 天光乍破遇,暮雪白头老。 寒剑默听奔雷,长枪独守空壕...

网友评论

      本文标题:SQL二维码跳转存值

      本文链接:https://www.haomeiwen.com/subject/lejauxtx.html