Skip to content

Instantly share code, notes, and snippets.

@ericfialkowski
Created May 8, 2017 02:26
Show Gist options
  • Save ericfialkowski/56ec34198ee49a54823858d0608309eb to your computer and use it in GitHub Desktop.
Save ericfialkowski/56ec34198ee49a54823858d0608309eb to your computer and use it in GitHub Desktop.
package main
import (
"net/url"
"fmt"
"database/sql"
_ "github.com/denisenkom/go-mssqldb"
"log"
"time"
)
func main() {
query := url.Values{}
query.Add("connection timeout", fmt.Sprintf("%d", 30))
u := &url.URL{
Scheme: "sqlserver",
User: url.UserPassword("gotester", "gotest"),
Host: "sqlu",
RawQuery: query.Encode(),
}
connectionString := u.String()
db, err := sql.Open("sqlserver", connectionString)
if err != nil {
log.Fatal("DB Conn failed",err.Error())
}
db.SetMaxIdleConns(1)
db.SetMaxOpenConns(4)
db.SetConnMaxLifetime(time.Hour * 1)
defer db.Close()
rows, err := db.Query("SELECT Name from sys.Databases")
if err != nil {
log.Fatal("Error with query", err.Error())
}
defer rows.Close()
var name string
for rows.Next() {
err := rows.Scan(&name)
if err != nil {
log.Fatal("Error reading value", err.Error())
}
log.Println(name)
}
err = rows.Err()
if err != nil {
log.Fatal("Errors detected during query", err.Error())
}
}
@ericfialkowski
Copy link
Author

Combined a couple of examples into a working example

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment