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}
新闻热点
疑难解答