使用ODBC驱动程序在Microsoft SQL Server上调用存储过程
问题描述:
I have a stored procedure let the name be "vijaystoredprocedure" , if it is some query in mssql then i will query in Go like
l_query_str = fmt.Sprintf(`select * from Users where Fname='%s'`, l_firstanme)
row, err := DBC.Query(l_query_str)
if err != nil {
log.Fatal("Prepare failed:", err.Error())
}
_, rows, r_err := DBScan_fn(row)
if r_err != nil {
fmt.Println("no data found err")
return
}
now since i have to get values from a stored procedure...can some one suggest how to acheive this in go
我有一个存储过程,让其名称为“ vijaystoredprocedure”,如果它是mssql中的某个查询,那么我将查询 在Go中,例如 p>
l_query_str = fmt.Sprintf(`select * from Users where Fname ='%s'`,l_firstanme)
row,err:= DBC.Query (l_query_str)
如果err!= nil {
log.Fatal(“准备失败:”,err.Error())
}
_,行,r_err:= DBScan_fn(row)
\ n如果r_err!= nil {
fmt.Println(“找不到数据错误”)
return
}
code> pre>
现在,因为我必须获取值 从存储过程中...可以有人建议如何在go p>
div>中做到这一点
答
I'm using github.com/alexbrainman/odbc
driver,
Example of executing stored procedure:
proc := "exec Dbo.vijaystoredprocedure ?, ?, ?, ?" //(Number of parameters)
parms := []interface{}{"parm1","parm2","parm3","parm4"}// Parameters if needed
if Stmt, err := DBC.Prepare(proc); err != nil {
log.Fatal(err.Error())
} else {
defer Stmt.Close()
if result, err := Stmt.Exec(parms...); err != nil {
log.Fatal(err.Error())
}
}
Example of stored function:
proc := "SELECT * From Dbo.[vijaystoredprocedure](?,?)" //(Number of parameters)
parms := []interface{}{"parm1","parm2"}// Parameters if needed
row, err := DBC.Query(proc, parms...)
if err != nil {
log.Fatal("Prepare failed:", err.Error())
}
_, rows, r_err := DBScan_fn(row)
if r_err != nil {
fmt.Println("no data found err")
return
}