网上例子:
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);
}
}];
}];
}];
}
以上是内存溢出为你收集整理的sqlite 分页查询全部内容,希望文章能够帮你解决sqlite 分页查询所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)