我正在使用 The Brainman 的 ODBC 驱动程序。我正在使用通用 ODBC 语法,即使用“CALL”来调用存储过程。这是我的代码:
stmt, stmtErr := db.Prepare("CALL RecordClick (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)")
if stmtErr != nil {
fmt.Printf("\nstmtErr: %s", stmtErr)
}
defer stmt.Close()
var aclickid int
stmtRows, stmtRowsErr := stmt.Query(xaid, subtag, r.Referer, requestUserAgent, requestIP, ip, ua, title, description, displayurl, clickUrl, kw, rpc, exid)
if stmtRowsErr != nil {
fmt.Printf("\nstmtRowsErr: %s", stmtRowsErr)
}
for stmtRows.Next() {
stmtRows.Scan(&aclickid)
}
当我运行它时,我收到以下错误:
stmtRowsErr: sql: converting Exec argument #2's type: unsupported type func() string, a func
我真的不明白我在这里做错了什么。我已经尝试过在 CALL XXX (?, ?, ?) 部分周围使用和不使用花括号,但它仍然无法正常工作。有任何想法吗?