IOS_Sqlite

举报
清雨小竹 发表于 2022/09/25 00:53:30 2022/09/25
3.2k+ 0 0
【摘要】 #import "sqlite3.h" @interface CSqlite : NSObject{ sqlite3 *database;} -(void)openSqlite; -(sqlite3_stmt*)runSql:(char*)sql; -(sqlite3_stmt*)NSRunSql:(NSString*)sql;...

      #import "sqlite3.h"
      @interface CSqlite  : NSObject
      {
          sqlite3 *database;
      }
      -(void)openSqlite;
      -(sqlite3_stmt*)runSql:(char*)sql;
      -(sqlite3_stmt*)NSRunSql:(NSString*)sql;
      -(BOOL)NSSendSql:(NSString*)sql;
      @end
  
 






      //
      // CSqlite.m
      // WXS
      //
      // Created by zili zhu on 12-7-13.
      // Copyright (c) 2012年 __MyCompanyName__. All rights reserved.
      //
      #import "CSqlite.h"
      @implementation CSqlite
      -(void)openSqlite
      {
          NSString *sqlFile = @"qxd.db";
          NSArray *cachePath= NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);
          NSString *cacheDir = [cachePath objectAtIndex:0];
          NSString *databasePath = [cacheDir stringByAppendingPathComponent:sqlFile];
          NSFileManager *fileManager = [NSFileManager defaultManager];
         // Copy the database sql file from the resourcepath to the documentpath
         if (![fileManager fileExistsAtPath:databasePath]) {
              NSString *databasePathFromApp = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:sqlFile];
              NSError *error;
              [fileManager copyItemAtPath:databasePathFromApp toPath:databasePath error:&error];
      // if (error != nil) {
      // NSLog(@"[Database:Error] %@", error);
      // }
          }
         if(sqlite3_open([databasePath cStringUsingEncoding:NSASCIIStringEncoding], &database)==SQLITE_OK)
          {
              NSLog(@"open sqlite db ok.");
          }
      // if (sqlite3_open([[[[NSBundle mainBundle] pathForResource:@"qxd" ofType:@"db"] retain] fileSystemRepresentation], &database)==SQLITE_OK) { 
      // NSLog(@"open sqlite db ok."); 
      // }
      }
      -(void)closeSqlite
      {
         sqlite3_close(database);
      }
      -(sqlite3_stmt*)runSql:(char*)sql
      {
        // char *errorMsg;
          sqlite3_stmt *statement;
         if (sqlite3_prepare_v2(database, sql, -1, &statement, nil)==SQLITE_OK) {
             NSLog(@"select ok");
          }
         return statement;
      }
      -(sqlite3_stmt*)NSRunSql:(NSString*)sql
      {
        // char *errorMsg;
          sqlite3_stmt *statement;
         if (sqlite3_prepare_v2(database, [sql UTF8String], -1, &statement, nil)==SQLITE_OK) {
             NSLog(@"select ok 2");
          }
         else {
             NSLog(@"select error 2");
          }
         return statement;
      }
      -(BOOL)NSSendSql:(NSString*)sql
      {
         char *errorMsg;
         if (sqlite3_exec(database, [sql UTF8String], 0, 0, &errorMsg)==SQLITE_OK)
          {
             NSLog(@"send ok");
             return YES;
          }
         else
          {
             fprintf(stderr,"Error: %s",  errorMsg);
             return NO;
          }
      }
      @end
  
 



      while (sqlite3_step(stmt)==SQLITE_ROW)
          {
              str_MemberDetail *node = new str_MemberDetail;
              node->Id = sqlite3_column_int(stmt, 0);
              node->Name =[[NSString alloc] initWithCString:(char *)sqlite3_column_text(stmt, 1) encoding:NSUTF8StringEncoding];
              node->Phone =[[NSString alloc] initWithCString:(char *)sqlite3_column_text(stmt, 2) encoding:NSUTF8StringEncoding];
              node->Photos =[[NSString alloc] initWithCString:(char *)sqlite3_column_text(stmt, 3) encoding:NSUTF8StringEncoding];
              node->EnName =[[NSString alloc] initWithCString:(char *)sqlite3_column_text(stmt, 4) encoding:NSUTF8StringEncoding];
              memberList->push_back(*node);
          }
  
 


文章来源: zzzili.blog.csdn.net,作者:清雨小竹,版权归原作者所有,如需转载,请联系作者。

原文链接:zzzili.blog.csdn.net/article/details/8294399

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

作者其他文章

评论(0

抱歉,系统识别当前为高风险访问,暂不支持该操作

    全部回复

    上滑加载中

    设置昵称

    在此一键设置昵称,即可参与社区互动!

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。