[JavaScript] 纯文本查看 复制代码
.版本 2
.支持库 esqlite31
.支持库 spec
.程序集 zySqlite3数据库分页
.程序集变量 sqlit, zySqlite数据库
.程序集变量 集_每页显示数, 整数型
.程序集变量 集_当前页码, 整数型
.程序集变量 集_总记录数, 整数型
.程序集变量 集_总页数, 整数型
.程序集变量 集_筛选条件, 文本型
.程序集变量 集_是否超限, 逻辑型
.程序集变量 集_表名, 文本型
.程序集变量 是否打开, 逻辑型
.子程序 _初始化, , , 当基于本类的对象被创建后,此方法会被自动调用
.子程序 _销毁, , , 当基于本类的对象被销毁前,此方法会被自动调用
关闭 ()
.子程序 初始化, 整数型, 公开
.参数 数据库路径, 文本型
.参数 表名, 文本型
.参数 每页显示数, 整数型
.参数 筛选条件, 文本型, 可空, 可空。如:where 性别 = '男'
.局部变量 stmt, zySqlite记录集
' -----------------------------------------------------------------
集_表名 = 表名
集_筛选条件 = 筛选条件
集_每页显示数 = 每页显示数
是否打开 = sqlit.打开 (数据库路径, #SQLITE_打开_读写)
stmt = sqlit.取记录集 (“select count(*) from ” + 集_表名 + “ ” + 筛选条件, )
集_总记录数 = stmt.cha询标量 ()
.' 判断循环首 (stmt.到下一条 ())
' 集_总记录数 = stmt.读整数型 (0)
.' 判断循环尾 ()
stmt.关闭 ()
.判断开始 (集_总记录数 % 集_每页显示数 = 0)
集_总页数 = 取整 (集_总记录数 ÷ 集_每页显示数)
.默认
集_总页数 = 取整 (集_总记录数 ÷ 集_每页显示数) + 1
.判断结束
返回 (集_总页数)
.子程序 是否已连接, 逻辑型, 公开
返回 (是否打开)
.子程序 置表名, , 公开
.参数 欲操作的表名, 文本型
.局部变量 stmt, zySqlite记录集
集_表名 = 欲操作的表名
' 因为表明发生了变化,所以总记录数
' ---------------------------------------
stmt = sqlit.取记录集 (“select count(*) from ” + 集_表名 + “ ” + 集_筛选条件, )
集_总记录数 = stmt.cha询标量 ()
.' 判断循环首 (stmt.到下一条 ())
' 集_总记录数 = stmt.读整数型 (0)
.' 判断循环尾 ()
stmt.关闭 ()
.判断开始 (集_总记录数 % 集_每页显示数 = 0)
集_总页数 = 取整 (集_总记录数 ÷ 集_每页显示数)
.默认
集_总页数 = 取整 (集_总记录数 ÷ 集_每页显示数) + 1
.判断结束
' ---------------------------------------
.子程序 关闭, , 公开
连续赋值 (0, 集_每页显示数, 集_当前页码, 集_总记录数, 集_总页数)
集_是否超限 = 假
集_表名 = “”
sqlit.关闭 ()
是否打开 = 假
.子程序 取总记录数, 整数型, 公开
返回 (集_总记录数)
.子程序 置每页显示数, 整数型, 公开, 如果是超级列表框,请用 SendMessage (超级列表框1.取窗口句柄 (), 4136, 0, 0) 命令,自动设定
.参数 数量, 整数型
集_每页显示数 = 数量
返回 (集_每页显示数)
.子程序 取每页显示数, 整数型, 公开
返回 (集_每页显示数)
.子程序 取总页数, 整数型, 公开
返回 (集_总页数)
.子程序 取当前页码, 整数型, 公开
返回 (集_当前页码 + 1)
.子程序 取分页记录, zySqlite记录集, 公开
.参数 筛选条件, 文本型, 可空
.局部变量 sql, 文本型
.局部变量 当前位置, 整数型
.局部变量 i, 整数型
.局部变量 id, 整数型
.局部变量 记录集1, zySqlite记录集
当前位置 = 集_当前页码 × 集_每页显示数
调试输出 (当前位置)
sql = “SELECT * FROM (SELECT * FROM ” + 集_表名 + “ ” + 筛选条件 + “ LIMIT ” + 到文本 (当前位置) + “,” + 到文本 (集_每页显示数) + “)”
调试输出 (sql)
' 记录集1 = sqlit.取记录集 (sql, )
记录集1.置SQL语句 (sql, sqlit)
记录集1.执行 ()
.如果 (集_当前页码 ≥ 集_总页数)
集_是否超限 = 真
.否则
集_是否超限 = 假
.如果结束
调试输出 (记录集1.取行数 ())
返回 (记录集1)
.子程序 到上一页, , 公开
集_当前页码 = 集_当前页码 - 1
.如果真 (集_当前页码 < 0)
集_当前页码 = 0
.如果真结束
.子程序 到下一页, , 公开
.如果真 (集_是否超限 = 假)
.如果真 (集_当前页码 < 集_总页数 - 1)
集_当前页码 = 集_当前页码 + 1
.如果真结束
.如果真结束
.子程序 到首页, , 公开
集_当前页码 = 0
.子程序 到尾页, , 公开
集_当前页码 = 集_总页数 - 1
.子程序 跳转, , 公开
.参数 页码, 整数型
.判断开始 (页码 ≤ 集_总页数 且 页码 > 0)
集_当前页码 = 页码 - 1
.默认
信息框 (“超出范围!”, 48, “出错啦”, )
.判断结束