乐趣区

关于go:golang连接sqlserver数据库

先装置好 Golang 环境

MacBook Linux 树莓派 raspberrypi 装置 Golang 环境

package main

import (
    "database/sql"
    "flag"
    "fmt"
    "log"

    _ "github.com/denisenkom/go-mssqldb"
)

var (debug         = flag.Bool("debug", false, "enable debugging")
    password      = flag.String("password", "","the database password")
    port     *int = flag.Int("port", 1433, "the database port")
    server        = flag.String("server", "","the database server")
    user          = flag.String("user", "","the database user")
)

func main() {flag.Parse()

    if *debug {fmt.Printf("password:%s\n", *password)
        fmt.Printf("port:%d\n", *port)
        fmt.Printf("server:%s\n", *server)
        fmt.Printf("user:%s\n", *user)
    }

    connString := fmt.Sprintf("server=%s;user id=%s;password=%s;port=%d", *server, *user, *password, *port)
    if *debug {fmt.Printf("connString:%s\n", connString)
    }
    conn, err := sql.Open("mssql", connString)
    if err != nil {log.Fatal("Open connection failed:", err.Error())
    }
    defer conn.Close()

    stmt, err := conn.Prepare("select 1,'abc'")
    if err != nil {log.Fatal("Prepare failed:", err.Error())
    }
    defer stmt.Close()

    row := stmt.QueryRow()
    var somenumber int64
    var somechars string
    err = row.Scan(&somenumber, &somechars)
    if err != nil {log.Fatal("Scan failed:", err.Error())
    }
    fmt.Printf("somenumber:%d\n", somenumber)
    fmt.Printf("somechars:%s\n", somechars)

    fmt.Printf("bye\n")
}
退出移动版