From 4c89e99d52a99dbfc40a91ce8284e74c73dffd76 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=80=E5=A2=A8=E6=9F=93=E5=B0=BD=E9=9D=92=E8=A1=A3?= =?UTF-8?q?=E9=A2=9C?= <378809360@qq.com> Date: Tue, 14 Aug 2018 10:28:52 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=20gdb=5Fmodel.go?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- g/database/gdb/gdb_model.go | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/g/database/gdb/gdb_model.go b/g/database/gdb/gdb_model.go index 39615f922..f9113fc53 100644 --- a/g/database/gdb/gdb_model.go +++ b/g/database/gdb/gdb_model.go @@ -413,27 +413,35 @@ func (md *Model) getFormattedSql() string { // 组块结果集 // @author ymrjqyy // @author 2018-08-13 -func (md *Model) Chunk(limit int, callback func(result Result, err error)) { +func (md *Model) Chunk(limit int, callback func(result Result, err error) bool) { var step = 0 var start = md.start for { md.limit = limit md.start = start + step*limit - // 查询当前组块的数据 + sqls := md.getFormattedSql() data, err := md.getAll(sqls, md.whereArgs...) + if err != nil { callback(nil, err) break } + if len(data) == 0 { break } - // 回调 - callback(data, nil) + + if callback(data, err) == false { + break + } + + callback(data, err) + if len(data) < limit { break } + step++ } }