DELIMITER $$ `netschool`$$ `fn_jk_GetCourses`$$ DEFINER=`root`@`%` `fn_jk_GetCourses`( p_pageIndex , p_pageSize )-- select p_Tid,p_Functionid,p_BeginTime,p_EndTime,p_pageIndex,p_pageSize; -- 定义key字段临时表 _temptable_keyid; -- 删除临时表,如果存在 _temptable_keyid ( `CourseId` ); -- 构建动态的sql,输出关键字key的id集合 -- 查找条件 @ =' SELECT `CourseId` from `tb_cs_course` '; -- SET @SQL=CONCAT(@SQL, ' ORDER BY `ExName` DESC '); -- select @SQL;-- 准备id记录插入到临时表 @=CONCAT('insert into _temptable_keyid(`CourseId`) ', @); stmt @; stmt ; stmt; -- 下面是输出 (*) RecordCount _temptable_keyid; -- 计算记录的起点位置 @STARTPOINT = IFNULL((p_pageIndex-1)*p_pageSize,0); @='select c.`CourseId`,`CourseName` AS `Name`,`GetSubject`(`SubjectId`) AS `Subject`,`GetGradeName`(`GradeId`) AS `Grade`,`GetTeacherName`(`TeacherId`) Teacher,`GetKnowledgeNameByCourseid`(c.`CourseId`) Knowledge,`VideoCount`,`ExName` ,`PicUrl` Poster `tb_cs_course` c _temptable_keyid t c.`CourseId`=t.`CourseId` '; @=CONCAT(@, ' limit ',@STARTPOINT,' , ',p_pageSize); stmt @; stmt ; stmt; _temptable_keyid; -- 给出实际查询的表 -- 结束$$DELIMITER ;
会返回两个结果,一个是 RecordCount 行数 ,一个是真正的记录
那么怎么去读取这2个值呢?
ListGetMessageHistoryByPage( functionId, string tId, string beginTime,string endTime, pg, pagesize,string , ref recordcount) { IDataReader rdr = DataProvider.Instance().GetMessageHistoryByPage(functionId, tId, beginTime, endTime, pg, ,pagesize); List objArray = ; (rdr.()) { recordcount = .ToInt32(rdr["RecordCount"]); } (rdr.NextResult()) { objArray = CBO.FillCollection (rdr); } objArray; }