gpt4 book ai didi

go - go-mssql 出现“无效内存地址”错误

转载 作者:数据小太阳 更新时间:2023-10-29 03:35:47 25 4
gpt4 key购买 nike

我有一个似乎无法解决的问题,可能是因为我对 GO 缺乏经验。我有以下代码在一台服务器上工作,但在另一台服务器上没有。这是代码:

// Build out the connection string to the database, and then open the connection to the database.
connString := fmt.Sprintf("server=%s;user id=%s;password=%s;port=%d", *server, *user, *password, *port)
if *debug { fmt.Printf(" connString:%s\n", connString) }
db, err = sql.Open("mssql", connString)
if err != nil { log.Fatal("Open connection failed:", err.Error()) }
err = db.Ping()
if err != nil {
fmt.Println("Cannot connect: ", err.Error())
return
}

rows, _ := db.Query( "SELECT Zip FROM Zip_Rural WHERE Zip = ?", ZipCode[0:5] )
defer rows.Close()

if !rows.Next() {
acreageRequirement = .5
}

在读取 if !rows.Next() 的行上,我收到以下错误:

panic: runtime error: invalid memory address or nil pointer dereference
panic: runtime error: invalid memory address or nil pointer dereference [signal 0xc0000005 code=0x0 addr=0x20 pc=0x477918]

同样的代码在另一台服务器上工作得很好,在两台机器上运行 GO 版本 1.4.2。我觉得我只是在这里某处有一些错误的语法,但不知道真正的问题是什么。在同一个文件中调用 db.Exec 工作正常,这让我相信我的数据库连接非常好,但由于某些原因 db.Query 不是正确执行。

最佳答案

db.Query 可能有错误。检查您的错误,如果它不是 nil,则假设 rowsnil。即调用 rows.Next() 将出现段错误。如果显示错误,您可能会发现问题所在。

关于go - go-mssql 出现“无效内存地址”错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30945198/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com