首页 > 学院 > 开发设计 > 正文

Golang 连接 SQL Server

2019-11-11 03:39:28
字体:
来源:转载
供稿:网友
package mainimport (	"database/sql"	"fmt"	. "github.com/soekchl/myUtils"	_ "github.com/soekchl/odbc_for_google" // code.google.com/p/odbc)// 连接 Microsoft SQL 结构体type Mssql struct {	*sql.DB}var (	mssql_data_source string = "localhost"	mssql_database    string = "test"	mssql_user        string = "admin"	mssql_passwd      string = "admin"	mssql_port        string = "1433"	db                Mssql)func main() {	name, err := GetName()	Notice(name, err)}func (m *Mssql) GetSqlHandle() (err error) {	if m.DB != nil {		m.Close()		Warn("关闭连接后从新连接~")	}	sql_conn_str := fmt.SPRintf("driver={sql server};server=%s;port=%s;uid=%s;pwd=%s;database=%s",		mssql_data_source, mssql_port, mssql_user, mssql_passwd, mssql_database,	)	m.DB, err = sql.Open("odbc", sql_conn_str)	if err != nil {		return err	}	return nil}// 关闭数据库func (m *Mssql) Close() (err error) {	if m.DB == nil {		return nil	}	err = m.DB.Close()	m.DB = nil	return}// 获取最近一期数据库数据func GetName() (name string, err error) {	// 连接数据库	err = db.GetSqlHandle()	if err != nil {		return	}	defer db.Close()	sql_cmd := "select name from test"	// 执行SQL语句	rows, err := db.Query(sql_cmd)	if err != nil {		return	}	defer rows.Close() // 释放连接池	rows.Next()	err = rows.Scan(&name)	return}
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表