【问题标题】:Golang SQL error expected 0 arguments got 3Golang SQL 错误预期 0 个参数得到 3
【发布时间】:2021-11-27 08:31:37
【问题描述】:

我正在使用github.com/denisenkom/go-mssqldb 库和驱动程序,但在插入新行时收到错误sql: expected 0 arguments, got 3 exit status 1

tsql := "INSERT INTO Uploads (Fname, Fsize, Ftype) VALUES (@Fname, @Fsize, @Ftype );"
fmt.Printf("tsql = %s\n", tsql)

//Execute non-query with named parameters
res, err := db.ExecContext(
    ctx,
    tsql,
    sql.Named("Fname", fname),
    sql.Named("Fsize", fsize),
    sql.Named("Ftype", ftype))

if err != nil {
    log.Fatal(" AddRow_v1() -> Error creating new row: " + err.Error())
    return -1, err
}

【问题讨论】:

  • 我这个你必须调用 dB.QueryContext 而不是 dB.ExecContext

标签: sql go


【解决方案1】:

此问题可能与连接字符串中使用的驱动程序名称有关。 我已经用你的方法尝试了同样的查询,记录的创建没有任何错误。

我相信您目前在连接字符串中使用的是 mssql; sql.Open("mssql", conn) (这个问题已经在https://github.com/denisenkom/go-mssqldb/issues/594#issuecomment-809922317讨论过)

如果您将“mssql”替换为“sqlserver”再试一次,应该可以解决问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-23
    • 2021-07-29
    • 2021-08-22
    • 2019-08-28
    相关资源
    最近更新 更多