我正在使用 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 (?, ?, ?) 部分周围使用和不使用花括号,但它仍然无法正常工作。有任何想法吗?