【发布时间】:2021-02-27 23:58:59
【问题描述】:
我已经用 .Rows() 和 .Scan() 尝试过这个。我不明白为什么 .Rows 有这个日志
SELECT TOP(100) * from person[] 0
.Scan 有这个
SELECT TOP(100) * from person[] 100
扫描的结果将值正确地存储在结构中。 scanRows 的结果在结构中不存储任何内容。
这是我的代码 sn-p
if table.ResultsPerPage > 0{
getDB().Raw("SELECT TOP(100) * from person").Scan(rowContainer) //dynamic struct
rows, err := getDB().Raw("SELECT TOP(100) * from person").Rows()
if err != nil {
return err, nil
}
defer rows.Close()
rowCount := 0
for rowCount< table.ResultsPerPage {
if(!rows.Next()){
break
}
if err = rows.Err(); err != nil {
return err, nil
}
err = getDB().ScanRows(rows, &rowContainer) // dynamic struct
if err != nil {
return err, nil
}
rowCount++
}
【问题讨论】:
-
我想使用行,因为我不想同时在内存中的所有内容。扫描工作正常并返回所有内容。行有点工作,它有 rows.Next() 返回 true。但它的内容只包含表头。数据在哪里?
-
奇怪的是,我在进行扫描时不需要 &,但如果我将其从 scanRows 中删除,我会得到一个无法寻址的恐慌值