1 回答

TA貢獻(xiàn)1856條經(jīng)驗(yàn) 獲得超11個(gè)贊
一種選擇是使用 stdlibsql包用于遍歷行的模式。通過這種方式,您可以將初始查詢與后續(xù)調(diào)用統(tǒng)一起來。
有一個(gè)Next()方法,它用查詢結(jié)果填充內(nèi)部結(jié)構(gòu),true如果有結(jié)果未決則返回。在您的情況下,您仍然需要一個(gè)初始構(gòu)造函數(shù),例如Query,但這只會(huì)設(shè)置數(shù)據(jù)結(jié)構(gòu)。調(diào)用才是Next()真正的工作,而調(diào)用Scan(r)(或任何你想調(diào)用的讀取結(jié)果的方法)只是呈現(xiàn)給結(jié)果。迭代完成后,您就有了Err()檢查任何操作錯(cuò)誤的方法。
稍微改變 sql 包中的示例:
// setup the query, but delay any action until we start iterating.
query, err := NewQuery(queryParameters)
// check err of course
defer query.Close()
for query.Next() {
err = query.Scan(&r)
...
}
err = query.Err() // get any error encountered during iteration
您還可以查看其他驅(qū)動(dòng)程序,例如mgo此模式的變體。
- 1 回答
- 0 關(guān)注
- 222 瀏覽
添加回答
舉報(bào)