package main
import (
"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
}
Golang 連接 SQL Server
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.