? ? ? ?先是用了github.com上面星星最多的一個(gè)庫?"github.com/denisenkom/go-mssqldb"孙咪,可是死活連不上我的mssqldb,提示是Login Error:EOF,搞不清怎么回事宁改。后來沒辦法又查到一個(gè)?"github.com/mattn/go-adodb" 說是用的原生的activex樊破?不知道能不能跨平臺(tái)了愉棱。不過這個(gè)可以連接到我的mssql.先湊合著用吧。
? ? ? ?之前鏈接到mysql ,tdib 都是好好的哲戚,mssql咋這么不靠譜了奔滑。
```
type Mssql struct {
*sql.DB
dataSource string
database? ?string
windows? ? bool
sa? ? ? ? ?SA
}
type SA struct {
user? ?string
passwd string
}
func (m *Mssql) Open() (err error) {
var conf []string
conf = append(conf, "Provider=SQLOLEDB")
conf = append(conf, "Data Source="+m.dataSource)
if m.windows {
// Integrated Security=SSPI 這個(gè)表示以當(dāng)前WINDOWS系統(tǒng)用戶身去登錄SQL SERVER服務(wù)器(需要在安裝sqlserver時(shí)候設(shè)置),
// 如果SQL SERVER服務(wù)器不支持這種方式登錄時(shí)顺少,就會(huì)出錯(cuò)朋其。
conf = append(conf, "integrated security=SSPI")
}
conf = append(conf, "Initial Catalog="+m.database)
conf = append(conf, "user id="+m.sa.user)
conf = append(conf, "password="+m.sa.passwd)
m.DB, err = sql.Open("adodb", strings.Join(conf, ";"))
if err != nil {
return err
}
return nil
}
func SignIn(un string, pwd string) int {
db := Mssql{
dataSource: "hsddf021.my3w.com",
database:? ?"hdsdsf04021_db",
// windwos: true 為windows身份驗(yàn)證,false 必須設(shè)置sa賬號(hào)和密碼
windows: false,
sa: SA{
user:? ?"hdsdfsd04021",
passwd: "sdf516A",
},
}
// 連接數(shù)據(jù)庫
err := db.Open()
if err != nil {
fmt.Println("sql open:", err)
return 0
}
defer db.Close()
// 執(zhí)行SQL語句
rows, err := db.Query("select username,userid from dv_user where username='" + un + "'")
if err != nil {
fmt.Println("query: ", err)
return 0
}
for rows.Next() {
var name string
var number int
rows.Scan(&name, &number)
fmt.Printf("Name: %s \t Number: %d\n", name, number)
}
/*
db, err := sql.Open("mssql", cfg.Cfg["mssql"])
var userid int32
var username string
var userpassword string
var userguid string
if err != nil {
log.Fatal("Open connection failed:", err.Error())
}
err = db.Ping()
if err != nil {
log.Fatal("connection failed:", err.Error())
}
log.Println(err.Error())
defer db.Close()
stmt, err0 := db.Prepare(`SELECT [UserID],[UserName],[UserPassword],[userguid] FROM [Dv_User] where [UserName] = "xinyuan"`)
if err0 != nil {
log.Println(err0)
}
defer stmt.Close()
rows, err := stmt.Query(un)
if err == nil {
defer rows.Close()
if rows.Next() {
rows.Scan(&userid, &username, &userpassword, &userguid)
ok, _ := uuid.NewV4()
log.Println(ok)
}
}
ss, _ := json.Marshal(db)
log.Println(ss)
*/
return 0
}
```