在一个应用程序中,我有一个全局范围的
var db *sql.DB
后来被称为
slcstrSource, slcint64Timestamp, slcstrContent, err := DB_functions.GetContent(db)
if err != nil {
fmt.Println("Error: " + err.Error())
}
GetContent 是这样的:
func GetContent(db *sql.DB) ([]string, []int64, []string, error) {
var slcstrContent []string
var slcint64Timestamp []int64
var slcstrSource []string
// Run the query
rows, err := db.Query("SELECT source, timestamp, content FROM MyDatabase.MyTable")
if err != nil {
return slcstrSource, slcint64Timestamp, slcstrContent, err
}
defer rows.Close()
for rows.Next() {
// Holding variables for the content in the columns
var source, content string
var timestamp int64
// Get the results of the query
err := rows.Scan(&source, ×tamp, &content)
if err != nil {
return slcstrSource, slcint64Timestamp, slcstrContent, err
}
// Append them into the slices that will eventually be returned to the caller
slcstrSource = append(slcstrSource, source)
slcstrContent = append(slcstrContent, content)
slcint64Timestamp = append(slcint64Timestamp, timestamp)
}
return slcstrSource, slcint64Timestamp, slcstrContent, nil
}
当我运行应用程序并命中这些代码部分时,我得到:
Error: mssql: Invalid object name 'MyDatabase.MyTable'.
当我 db.Ping() 数据库时,它似乎工作。从我缩小范围来看,错误发生在查询中,但我找不到问题所在。我检查了数据库,有一个名为 MyDatabase 的数据库,其中有一个名为 MyTable 的表,该表在这三列中有信息......
在进行查询之前或进行查询时,我是否遗漏了什么?
相关分类