• Fmdb 存储照片


    网上说的方法 

     NSString *doc = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];

        NSString *filename = [doc stringByAppendingPathComponent:@"creiNO.sqlite"];

        

        // 2.得到数据库

        self.db = [FMDatabase databaseWithPath:filename];

        [self changBiao];

    // 4.创表

    -(void)changBiao{

        

        if ([self.db open]) {

            // @"create table if not exists refCar (bdid integer primary key, shopin text, date integer, salary real)

            BOOL result = [self.db executeUpdate:@"CREATE TABLE IF NOT EXISTS sNOcar (dbid integer PRIMARY KEY AUTOINCREMENT, crnid TEXT NOT NULL, imagedata text);"];//网上是blob

            if (result) {

                NSLog(@"igggd成功创表");

            } else {

                NSLog(@"创表失败");

            }

            

        }

        

        [self.db close];

        //

        [self inist];

        

        

    }

    -(void)inist{

        //NSData * date = [[NSData alloc]init];

        //UIImage * image = [UIImage imageNamed:@"share1"];

        

     NSString * paht =   [[NSBundle mainBundle]pathForResource:@"share1" ofType:@"jpg"];

        

      UIImage * image = [UIImage imageWithContentsOfFile:paht];

      //  NSLog(@"3333 %@", image);

    //第一步

      //第二种 直接变成data blob类型

       :1 NSData * date = UIImageJPEGRepresentation(image, 1);

        

         // NSString * st =    [date base64Encoding];

        

      //  NSData * st  =[date base64EncodedDataWithOptions:1];

        //第一种

        //第二步

        NSString * st = [date base64EncodedStringWithOptions:1];

        self.daeta = date;

        

        if ([self.db open]) {

            

          

            

            NSString *insertSql1= [NSString stringWithFormat:@"INSERT INTO sNOcar (crnid,imagedata) VALUES ('%@', '%@')",@"33" , st];

            

            BOOL res = [self.db executeUpdate:insertSql1];

       第二种插入时

       这么插入   ?什么类型都可以

         BOOL res = [self.db executeUpdate:@"INSERT INTO sNOcar (crnid,imagedata) VALUES ( ?, ?)",@"33" , date];

           

            if (res) {

                NSLog(@"日志数据插入表成功");

            } else {

                NSLog(@"日志数据插入表失败");

            }

            

            

            

            

        }

        [self.db close];

        

        

    }

     //查询

    -(void)selectshuj{

        

        

        UIImage * imaged;

        

        if ([self.db open]) {

            

            //查询某个数据where crnNO = '0020170222'

            NSString * sql = @"SELECT * FROM sNOcar ";

            FMResultSet * rs = [self.db executeQuery:sql];

            while ([rs next]) {

              //  int dbId = [rs intForColumn:@"dbid"];

                NSString * crnid =  [rs stringForColumn:@"crnid"];

                //第二种

              //  NSData * date = [rs dataForColumn:@"imagedata"];

                

                //第一种

      .//取出数据

                NSString * date = [rs stringForColumn:@"imagedata"];

                

               NSData *decodedImageData = [[NSData alloc]initWithBase64EncodedString:date options:1]; 

               // NSData * daterrr =[[NSData alloc]initWithBase64EncodedData:date options: 1];

                

                

                

               // NSData *decodedImageData = [[NSData alloc]initWithBase64EncodedString:date options:1];

                        

                 // NSData *decodedImageData = [[NSData alloc] initWithBase64Encoding:date];

                NSData *decodedImageData=[[NSData alloc]initWithBase64EncodedData:date options:1];

          //  NSData  * datef = [[NSData alloc]initWithBytes:date.bytes length:date.length];

                NSLog(@"---------------------------------加载 66h %@  ", crnid);

               // NSLog(@"---------444444444-----加载hhhhhhhhhhh  %@  ", date );

              //  NSLog(@"---------------------------------加载hhhhhhhhhhh  %@  ", datef );

                 NSLog(@"------------3333333---------------------加载hhhhhhhhhhh  %@  ", decodedImageData );

               // UIImage * image = [UIImage imageWithData:datef];

                

              //  NSData * date = [rs dataForColumn:<#(NSString *)#>]

    //转换成照片

                self.imagef = [[UIImage alloc]initWithData:decodedImageData];

              //  imaged = image;

                    NSLog(@"---------------------------加载ttttt  %@  ", self.imagef);

                

            }

    对于网上说的存blob类型 取出来时 转换成照片 失败 为空 不知道为什么 

            

        }

        

        [self.db close];

        

        self.imgview.image =  self.imagef;

        

        

        //  NSLog(@" %@",self.arrraymodel);

        

        

        

    }

    一天一章
  • 相关阅读:
    js类数组
    内存中,外部碎片与内部碎片
    检测js随机函数是否随机
    Vue3 父子组件通信
    Promise的几个重要api
    npm知识总结
    vue中使用防抖函数
    absolute元素水平居中
    vue3 使用 data、computed、methods
    空白字符
  • 原文地址:https://www.cnblogs.com/hangman/p/6913687.html
Copyright © 2020-2023  润新知