【发布时间】:2016-09-01 01:02:26
【问题描述】:
我知道我非常接近让这段代码正常工作,但肯定缺少一些简单的东西。
我有一系列使用 sequel::model 抽象的 teradata 和 oracle 表。我已经将分页扩展加载到数据库中。我可以返回一个数据集,但无论我做什么,除了第一页之外,我无法让它给我任何东西。
这是我如何抽象表格的示例。
module MyDB
class MyTable< Sequel::Model(tera_db["#{$env[:my_db]}__my_table".to_sym])
@factory_name = :my_factory
set_primary_key [:my_primary_key]
@typecast_on_assignment = false
end
end
这是我在 each_page 周围实现一些测试代码的方式
MyDB::MyTable.order(:my_primary_key).each_page(1000) do |page|
p page.current_page_record_count
p page.count
p page.first
end
数据集中有 87,675 条记录。此循环的最后两次迭代输出是:
1000
1000
值={:key1=>12345, :key2=>14.58, :key3=> 155.44}
675
1000
值={:key1=>12345, :key2=>14.58, :key3=> 155.44}
所以...正在创建适当数量的页面。并且分页记录的基础计数是正确的。但是当我尝试获取页面中的实际值时,它只会从第一页获取记录,包括记录数。
我错过了什么?
【问题讨论】: