sqlite 分页查询

 
网上例子:
select * from users order by id limit 10 offset 0;  //offset代表从第几条记录“之后“开始查询,limit表明查询多少条结果


运用:
sqlitecmd.CommandText = string.Format("select * from GuestInfo order by GuestId limit {0} offset {0}*{1}", size, index-1);
//size:每页显示条数,index页码
 
 

我的例子:

#pragma mark- 获取所有的系统消息 - msgType & displayType 分页查询

- (NSMutableArray *)getAllSysMessageBymsgType:(long long)msgType displayType:(long long)displayType page:(NSInteger)page pageSize:(NSInteger)size error:(NSError **)error  {

    {

        if (size < 0) {

            return [NSMutableArray array];

        }

        

        __block NSMutableArray * resultArray = [NSMutableArray array];

        __block SSDAOSysMessage *message = nil;

        

        __weak typeof(self) weakObj = self;

        [self.dbPocrchQueue inDatabase:^(FMDatabase *db) {

            

            __strong typeof (weakObj) strongObj = weakObj;

            if (!db) {

                return;

            }

            

            NSString *sql = [NSString stringWithFormat:@"select * from %@  where %@ = %lld and DISPLAY_TYPE = %lld ORDER BY %@ DESC", @"SSSysMessage", @"MSG_TYPE", msgType, displayType, @"MSGSEQ_ID"];

            LOGI(@"************sql:   %@",sql);

            

            FMResultSet *result = [db executeQuery:sql];

            

            while (result.next){

                message = [strongObj sysMessageFromDatabaseResult:result];

                [resultArray addObject:message];

            }

            [result close];

            

            if ([db hadError] && error) {

                *error = [db lastError];

            }

            

        }];

        

        return resultArray;

    }

}

- (void)getAllSysMessageBymsgType:(long long)msgType displayType:(long long)displayType page:(NSInteger)page pageSize:(NSInteger)size error:(NSError **)error callBack:(SSDataResultCallback)callback{

    __weak typeof(self) weakObj = self;

    

    [SSExecutionHelper invokeQueue:self.managerQueue usingBlock:^{

        

        __strong typeof(weakObj) strongObj = weakObj;

        

        NSError * err ;

        NSMutableArray  * result = [strongObj.databasePorch getAllSysMessageBymsgType:msgType displayType:displayType page:page  pageSize:size   error:&err];

        

        NSMutableArray * array = [NSMutableArray array];

        

        for (SSDAOSysMessage * daoObj in result) {

            SSSysMessage * sysMsg = [[SSSysMessage alloc]init];

            [sysMsg updateWithDAOSysMessage:daoObj];

            [array addObject:sysMsg];

        }

        if(callback)

        {

            callback(array,err);

        }

        

    }];

 

}

-(void)test_getdata_db_page_callBack:(SSDataResultCallback)callback{

    

    LOGI(@" *********  test_getdata_db_page   ********* " );

    

    //分页查询测试

    

    int pageSize = 10;

    __block  int page = 1;

    __weak typeof(self) weakObj = self;

    int msgType = 4;

    int submsgTYpe = 8;

    

    __block NSMutableArray * tmp = [NSMutableArray array];

    [SSExecutionHelper invokeQueue:self.managerQueue usingBlock:^{

        __strong typeof(weakObj) strongObj = weakObj;

    [strongObj getAllSysMessageBymsgType:msgType displayType:submsgTYpe page:page pageSize:pageSize error:nil callBack:

      ^(id data, NSError *err) {

          

            page = page +1;

            

            NSArray * arr = data;

            if (arr.count > 0) {

                [tmp addObjectsFromArray:data];

                

            }else{

                callback(tmp,nil);

            }

            

      [strongObj getAllSysMessageBymsgType:msgType displayType:submsgTYpe page:page pageSize:pageSize error:nil callBack:

       ^(id data, NSError *err)  {

                

                NSArray * arr = data;

                

                if (arr.count > 0) {

                    [tmp addObjectsFromArray:data];

                }else{

                    callback(tmp,nil);

                }

                

            }];

            

        }];

        

    }];

    

    

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值