Vijay Kumar
Vijay Kumar

Reputation: 597

Call stored procedure on Microsoft SQL Server using ODBC driver

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

Upvotes: 0

Views: 773

Answers (1)

Elad
Elad

Reputation: 754

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
}

Upvotes: 1

Related Questions