forked from go/golangs_learn
viviman
3 years ago
4 changed files with 104 additions and 2 deletions
@ -0,0 +1,95 @@ |
|||||
|
package main |
||||
|
|
||||
|
import ( |
||||
|
"database/sql" |
||||
|
"fmt" |
||||
|
"log" |
||||
|
|
||||
|
_ "github.com/mattn/go-adodb" |
||||
|
) |
||||
|
|
||||
|
// 连接 Microsoft SQL 结构体
|
||||
|
type Mssql struct { |
||||
|
*sql.DB |
||||
|
} |
||||
|
|
||||
|
var ( |
||||
|
mssql_data_source string = "10.6.132.21" |
||||
|
mssql_database string = "gmistjj" |
||||
|
mssql_user string = "epsoft" |
||||
|
mssql_passwd string = "epsoft" |
||||
|
mssql_port string = "1433" |
||||
|
db Mssql |
||||
|
) |
||||
|
|
||||
|
func main() { |
||||
|
|
||||
|
name, err := GetName() |
||||
|
|
||||
|
if err != nil { |
||||
|
fmt.Println(name) |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
func (m *Mssql) GetSqlHandle() (err error) { |
||||
|
if m.DB != nil { |
||||
|
m.Close() |
||||
|
log.Fatalf("关闭连接后从新连接~") |
||||
|
} |
||||
|
|
||||
|
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 { |
||||
|
fmt.Println("链接失败!") |
||||
|
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 AB0111,AB0110,ZA9998,AA0177 from aa01 where AB0111 like '1105%' and AA010D='1' order by AB0110,AK010U" |
||||
|
|
||||
|
// 执行SQL语句
|
||||
|
rows, err := db.Query(sql_cmd) |
||||
|
if err != nil { |
||||
|
return |
||||
|
} |
||||
|
defer rows.Close() // 释放连接池
|
||||
|
|
||||
|
img := Img{} |
||||
|
|
||||
|
for rows.Next() { |
||||
|
rows.Scan(&img.AB0111, &img.AB0110, &img.ZA9998, &img.AA0177) |
||||
|
fmt.Println(img) |
||||
|
} |
||||
|
|
||||
|
return |
||||
|
} |
||||
|
|
||||
|
type Img struct { |
||||
|
AB0111 string |
||||
|
AB0110 string |
||||
|
ZA9998 string |
||||
|
AA0177 string |
||||
|
} |
Loading…
Reference in new issue