CREATE PROCEDURE `page`(
in currpage int,
in columns varchar(500),
in tablename varchar(500),
in sCondition varchar(500),
in order_field varchar(100),
in asc_field int,
in primary_field varchar(100),
in pagesize int
)
begin
declare sTemp varchar(1000);
declare sSql varchar(4000);
declare sOrder varchar(1000);
if asc_field = 1 then
set sOrder = concat(' order by ', order_field, ' desc ');
set sTemp = '<(select min';
else
set sOrder = concat(' order by ', order_field, ' asc ');
set sTemp = '>(select max';
end if;
if currpage = 1 then
if sCondition <> '' then
set sSql = concat('select ', columns, ' from ', tablename, ' where ');
set sSql = concat(sSql, sCondition, sOrder, ' limit ?');
else
set sSql = concat('select ', columns, ' from ', tablename, sOrder, ' limit ?');
end if;
else
if sCondition <> '' then
set sSql = concat('select ', columns, ' from ', tablename);
set sSql = concat(sSql, ' where ', sCondition, ' and ', primary_field, sTemp);
set sSql = concat(sSql, '(', primary_field, ')', ' from (select ');
set sSql = concat(sSql, ' ', primary_field, ' from ', tablename, sOrder);
set sSql = concat(sSql, ' limit ', (currpage-1)*pagesize, ') as tabtemp)', sOrder);
set sSql = concat(sSql, ' limit ?');
else
set sSql = concat('select ', columns, ' from ', tablename);
set sSql = concat(sSql, ' where ', primary_field, sTemp);
set sSql = concat(sSql, '(', primary_field, ')', ' from (select ');
set sSql = concat(sSql, ' ', primary_field, ' from ', tablename, sOrder);
set sSql = concat(sSql, ' limit ', (currpage-1)*pagesize, ') as tabtemp)', sOrder);
set sSql = concat(sSql, ' limit ?');
end if;
end if;
set @iPageSize = pagesize;
set @sQuery = sSql;
prepare stmt from @sQuery;
execute stmt using @iPageSize;
end;
分享到:
相关推荐
这个系统具备多种功能,包括添加联系人记录、按名字或电话号码查询记录、删除记录、修改已有记录、保存记录到文件、从文件读取记录以及浏览记录的上一页、下一页、第一页和最后一页。下面我们将逐一探讨这些功能的...
《InnoDB记录存储结构解析》 在MySQL的世界里,存储引擎是数据库管理的核心组件,它负责数据的存储和检索。其中,InnoDB是最常见的存储引擎,以其事务安全性和高性能著称。本文将深入探讨InnoDB的记录存储结构,...
标题中的“mdb库结构记录保存.rar”指的是一个压缩文件,其中包含了关于Microsoft Access数据库(mdb文件)的结构和记录保存的相关信息。mdb文件是Access数据库的默认格式,用于存储数据表、查询、报表、模块等...
在“易语言mdb库结构记录保存”这个主题中,我们主要探讨的是如何使用易语言来处理Microsoft Access的mdb数据库文件,包括获取数据库结构、保存记录以及与XML文件的交互。 首先,mdb文件是Microsoft Access数据库的...
标题中的"易语言mdb数据库结构记录保存源码"指的是一个易语言编写的程序,这个程序能够读取、操作mdb数据库的结构和记录,并且有能力将这些数据保存下来。在数据库编程中,保存数据库结构和记录通常涉及到数据库的...
把文件的逻辑结构转换成存储结构,设计便于顺序存取和直接存取的文件存储结构。 为了提高存储空间的利用...但这些存放逻辑记录的存储空间不是按链表的形式链接在一起的,而是采用索引表来指出逻辑记录存放的物理位置。
数据被分割成页并存储在磁盘上,每个页通常包含多个记录。DB2支持多种存储类型,如堆表存储(Heap)、索引组织表(Index-Organized Table, IOT)和分区表等。 1. **堆表存储**:这是最基础的存储方式,数据按照插入...
记录的存储结构包括位置技术、关系技术、计数技术等,它们决定了数据如何在物理块上分配和组织。记录的分配方式有连续分配、链接分配、簇集分配和索引分配,每种方式都有其适用场景和优缺点。例如,连续分配适合小...
在实际编程中,我们通常使用链式存储来实现栈,因为这种结构提供了更大的灵活性。 栈的链式存储结构与数组存储相比,有其独特的优势。数组存储栈时,空间是连续的,预设大小一旦确定,难以动态扩展;而链式存储则...
6. 文件操作:在保存结构信息时,需要使用易语言的文件操作函数,如创建文件、写入文件等。 7. 用户界面:如果源码包含用户界面,可能会有事件驱动的编程模式,用户通过界面触发数据读取和保存的操作。 学习并理解...
每一层索引页都存储了其子页的最小主键值和对应的页号,这种层级结构极大提高了检索效率。 3. B+树索引的查找过程 当执行一个根据主键查找的查询时,搜索将从B+树的根节点开始。在每个索引页中,算法通过二分查找来...
总的来说,InnoDB的数据页结构优化了数据的存储和查询,通过Page Directory加速了在页内查找特定记录的过程,而User Records的链表设计则允许灵活的数据插入和删除操作。理解这些数据结构对于优化MySQL数据库的性能...
- 查询操作:实现各种查询功能,如按宿舍号查找、按学生姓名查找等,这涉及到遍历数据结构的算法。 - 插入和删除操作:如学生入住、退宿的处理,需要考虑如何高效地修改数据结构。 - 文件操作:保存和读取数据到磁盘...
压缩包内的"mdb库结构记录查询及保存库结构到XML.e"是易语言的工程文件,其中包含了实现这一功能的源代码。通过这个程序,用户可以读取mdb文件的结构信息,然后将其转换成XML格式,XML是一种结构化数据的通用表示...
### PostgreSQL 存储体系结构详解 #### 一、概述 PostgreSQL是一款开源的、功能全面的关系型数据库管理系统,因其强大的特性和灵活性而受到广泛好评。本文档将通过一系列的图片和示例,深入探讨PostgreSQL的内部...
在深入探讨InnoDB数据页的结构之前,我们需要了解InnoDB存储引擎中“页”的概念。InnoDB使用页作为存储空间的基本单位,一个页的大小通常是16KB。InnoDB设计了多种类型的页,用以存放不同数据和信息,例如表空间头部...
Oracle数据库是全球广泛使用的大型关系型数据库管理系统之一,它的数据存储结构是理解其高效运作的基础。在Oracle中,数据被组织成逻辑和物理两层结构,以实现高效的数据管理和检索。 首先,我们从逻辑结构的角度来...
线性表的链式存储结构在计算机科学中是一种常见的数据结构,它用于组织和操作一组具有线性顺序的元素。在这种结构中,每个元素都称为节点,每个节点包含数据和指向下一个节点的引用。链式存储与数组不同,因为数组中...