package dbquery import ( "database/sql" "errors" "fmt" "strconv" "log" "time" _ "github.com/denisenkom/go-mssqldb" ) var MSDB_CONN *sql.DB func MSConnect(DBHOST, DBUSER, DBPWD, DBNAME, DBPORT, encrypt string, conns ...int) error { log.Println("msdb connectting...") var dbConnErr error if DBHOST != "" && DBUSER != "" && DBPWD != "" && DBPORT != "" { //&& DBNAME != "" for i := 0; i < 10; i++ { //连接字符串 db_port, _ := strconv.Atoi(DBPORT) params := "server=%s;port=%d;database=%s;user id=%s;password=%s" if encrypt != "" { params = params + ";encrypt=" + encrypt } connString := fmt.Sprintf(params, DBHOST, db_port, DBNAME, DBUSER, DBPWD) log.Println(connString) //建立连接 MSDB_CONN, dbConnErr = sql.Open("mssql", connString) if dbConnErr != nil { log.Println("ERROR", "can not connect to Database, ", dbConnErr) time.Sleep(time.Second * 5) } else { err = MSDB_CONN.Ping() log.Println("msdb connected", err) break } } } else { return errors.New("msdb connection params errors") } return dbConnErr } func CloseMSConn() error { if MSDB_CONN != nil { return MSDB_CONN.Close() } return nil }