站保站

服务市场
  • 网站市场
  • 单机游戏
  • 平台大厅
  • 转让市场
  • 发卡市场
  • 广告市场
  • 下载市场
  • 收录市场
  • 本站平台
    平台客服
    微信Q群



    平台微博/weibo    平台微信/公众号    平台抖音/快手   
    曝光台    保障    地图   
    上传资源 快速赚钱
    站保站    登录      |  注册  |  

    只需一步,快速开始!

     找回密码   |   协议
    热门搜索: 网站开发 App报毒 挖矿源码 代办资质

    sqlite获取所有表的代码实现

    • 时间:2020-10-27 11:35 编辑:allanGold 来源: 阅读:45
    • 扫一扫,手机访问
    摘要:

     sqlite获取所有表的代码实现,注意这里不要使用FMDB,直接使用sqlite的c函数

    1. {
    2. sqlite3 *_db;
    3. BOOL _isOpen;
    4. }
    5. - (void)upgradeDBFromVersion0 {
    6. int status = [self openDB];
    7. if (status == SQLITE_OK) {
    8. NSLog(@"--开始升级db");
    9. _isOpen = YES;
    10. NSArray *allTables = [self getAllTables];
    11. for (NSString *tableName in allTables) {
    12. if ([tableName containsString:@"courseware_"] ||
    13. [tableName containsString:@"messageData_"] ||
    14. [tableName containsString:@"note_"]) {
    15. // 做迁移
    16. NSString *addColumnSql = [NSString stringWithFormat:@"alter table %@ add clearIndex INTEGER default 0 not null", tableName];
    17. int addColumeExecStatus = sqlite3_exec(_db, addColumnSql.UTF8String,NULL, NULL, NULL);
    18. if (addColumeExecStatus == SQLITE_OK) {
    19. NSLog(@"--添加字段成功");
    20. }
    21. else {
    22. NSLog(@"--添加字段失败");
    23. }
    24. }
    25. }
    26. int closeStatus = [self closeDB];
    27. if (closeStatus == SQLITE_OK) {
    28. NSLog(@"--关闭数据库成功");
    29. }
    30. else {
    31. NSLog(@"--关闭数据库失败");
    32. }
    33. }
    34. else {
    35. NSLog(@"--db打开失败");
    36. }
    37. }
    38. - (NSArray *)getAllTables {
    39. // 获取所有的需要升级的表名,注意:这里直接使用sqlite3的c函数,使用FMDB的话得不到想要的结果
    40. NSMutableArray *mArr = [[NSMutableArray alloc] init];
    41. NSString * sql = @"SELECT name FROM sqlite_master WHERE type='table' ORDER BY name";
    42. //2.执行语句
    43. // int status = sqlite3_exec(_db, sql.UTF8String,NULL, NULL, NULL);
    44. // NSLog(@"****%d", status);
    45. sqlite3_stmt * stmt = NULL;
    46. int res = sqlite3_prepare(_db, sql.UTF8String, -1, &stmt, NULL);
    47. if (res==SQLITE_OK) {
    48. NSLog(@"预处理成功");
    49. //3.一条条读数据
    50. while (sqlite3_step(stmt)==SQLITE_ROW) {
    51. // char * type = (char *) sqlite3_column_text(stmt, 0);
    52. // char * name = (char *) sqlite3_column_text(stmt, 1);
    53. // char * tbl_name = (char *) sqlite3_column_text(stmt, 2);
    54. // NSLog(@"------%s,%s,%s",type,name,tbl_name);
    55. char *name = (char *) sqlite3_column_text(stmt, 0);
    56. [mArr addObject:[NSString stringWithUTF8String:name]];
    57. NSLog(@"------%s", name);
    58. }
    59. }else{
    60. NSLog(@"预处理失败");
    61. }
    62. //释放开辟的内存空间
    63. sqlite3_finalize(stmt);
    64. NSLog(@"%@", mArr);
    65. return mArr.copy;
    66. }
    67. - (int)openDB {
    68. NSString *dbFilePath = [DBClient shareInstance].getDBFilePath;
    69. _db = NULL;
    70. int openStatus = sqlite3_open(dbFilePath.UTF8String, &_db);
    71. return openStatus;
    72. }
    73. - (int)closeDB {
    74. if (_isOpen) {
    75. int status = sqlite3_close(_db);
    76. return status;
    77. }
    78. return -1;
    79. }

     

    • 全部评论(0)
    • 最新

    信息加载中,请等待

    微信客服(速回)

    微信客服(慢回)



    企业微信客服二维码
    联系我们
    平台客服: 平台QQ客服

    平台电话:400电话迁移中!

    平台邮箱:28292383@qq.com

    工作时间:周一至周五:早10:00 晚:18:00

    营业执照     网站ICP备案:鲁ICP备20027607号-1     鲁公网安备:37068702000078号     增值电信业务经营许可证、在线数据与交易处理业务许可证:鲁B2-20200681      © 2016-2024 站保站  https://www.zhanbaozhan.com/ 版权所有!      平台规范:   关于我们   广告合作   隐私条款   免责声明   法律声明   服务条款   网站地图   平台工单!