package main
import (
    "database/sql"
    "fmt"
    "strings"
)
import (
    _ "github.com/mattn/go-adodb"
)
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 这个表示以当前WINDOWS系统用户身去登录SQL SERVER服务器(需要在安装sqlserver时候设置),
        // 如果SQL SERVER服务器不支持这种方式登录时,就会出错。
        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 main() {
    db := Mssql{
        dataSource: "数据库地址",
        database: "数据库名称",
        // windwos: true 为windows身份验证,false 必须设置sa账号和密码
        windows: false,
        sa: SA{
            user: "账号",
            passwd: "密码",
        },
    }
    // 连接数据库
    err := db.Open()
    if err != nil {
        fmt.Println("sql open:", err)
        return
    }
    defer db.Close()
    // 执行SQL语句
    rows, err := db.Query("SELECT FID,FAccount FROM dbo.TAccounts")
    if err != nil {
        fmt.Println("query: ", err)
        return
    }
    for rows.Next() {
        var FID int
        var FAccount string
        rows.Scan(&FID, &FAccount)
        fmt.Printf("Name: %s \t Number: %d\n", FID, FAccount)
    }
    return
}
 
我查出来的是必须对应select字段名称,不然会出错。网上都直接放*,可是获取不到数据,没有去验证是否和表里的字段多少有关系,或许别人表里只有两个字段

从0开始学golang--1.1--连接ms sql server数据库的更多相关文章

  1. [转]JIRA 7.2.6与Confluence 6.0.3的安装与配置之MS SQL Server版

    相关软件版本信息 说明:下方软件可以点击链接,通过百度云盘进行下载. 操作系统:Windows 10(密码:foht)或者Windows Server 2012(密码:lsad): 数据库:SQL S ...

  2. java连接ms sql server各类问题解析

    首先先来说下使用微软自己开发的架包进行ms sql server数据库的连接时,sql 2000与sql 2005的连接方式略有不同: 1.首先驱动不一样,sql 2000的连接驱动包有三个,分别是: ...

  3. Jmeter—8 连接microsoft sql server数据库取数据

    本文以Jmeter 连接microsoft sql server为例. 1 从微软官网下载Microsoft SQL Server JDBC Driver 地址:http://www.microsof ...

  4. Jmeter入门8 连接microsoft sql server数据库取数据

    本文以Jmeter 连接microsoft sql server为例. 1 从微软官网下载Microsoft SQL Server JDBC Driver 地址:http://www.microsof ...

  5. 1433端口无法连接(sql server 数据库无法访问问题)解决思路

    登录远程SQL服务器一 看ping 服务器IP能否ping通. 这个实际上是看和远程sql server 2000服务器的物理连接是否存在.如果不行,请检查网络,查看配置,当然得确保远程sql ser ...

  6. vs连接服务器sql server数据库 web.config和代码

    方法一.在web.config里面配置,后连接数据库 (1)web.config文件:加在<connectionStrings>和</connectionStrings> 之间 ...

  7. PHP 5.3.X 连接MS SQL Server php_mssql.dll

    在网上搜索了一下PHP 5.3.X 连接SQL Server的办法,有人也遇到了这个问题 原来PHP 团队在PHP 5.3 中移除了SQL Server的驱动和库,而微软自己开发了针对PHP的SQL驱 ...

  8. 无法连接远程SQL Server 数据库的原因

    1. tcp协议开启 2. 1433端口是否添加防火墙例外

  9. ASP.NET MVC 4 从示例代码展开,连接默认SQL Server数据库

    VS2013里面,点击菜单[视图]-[SQL server对象资源管理器],右键点击[SQL Server]节点,选择[添加SQL Server]自动生成. 这只是开始,可以让网上下载下来的例子运行出 ...

随机推荐

  1. mybatis 一对多 id标签作用

    一对多 MyBatis的resultMap只用于配置结果如何映射,id的唯一作用就是在嵌套的映射配置时判断数据是否相同,当配置id标签时,MyBatis只需要逐条比较所有数据中id标签字段值是否相同即 ...

  2. LeetCode题解之Find the Difference

    1.题目描述 2.题目分析 比较两个字符串中加入的一个字符,由于可能在字符串中加入一个已经存在的字符,因此使用hash table 去统计字符个数最好. 3.代码 char findTheDiffer ...

  3. Oracle EBS 键弹性域 段限定词取值

    中间是回车符 对应编码时 Chr(10) substr(replace(t.compiled_value_attributes, Chr(10), ''), 3, 1)

  4. poj_3628 Bookshelf 2

    Description Farmer John recently bought another bookshelf for the cow library, but the shelf is gett ...

  5. Linux ifconfig命令详解

    ifconfig(interfaces config).通常需要以root身份登录或使用sudo来使用ifconfig工具 ifconfig 命令用来查看和配置网络设备.当网络环境发生改变时可通过此命 ...

  6. Linux 环境部署记录(一) - 基础设定

    时间设置 查看系统当前日期/时间: date -R 查看系统硬件时钟: hwclock --show 设置硬件时间: hwclock --set --date="07/18/17 20:55 ...

  7. 深入理解python中的yield关键字

    想必大家都看过这样的代码: 上面的这段代码会计算0-9的平方并打印出来. 那么问题来了,这段代码和我们要说的东西有什么区别呢? 这里的关键字,yield,我在前面的文章里已经发过了.那么yield是什 ...

  8. php函数substr_replace中文乱码的替代解决方法

    $str = "中华人民共和国"; $len = mb_strlen($str,'utf-8'); if($len>=6){ $str1 = mb_substr($str,0 ...

  9. ZT 输入一个字符串,查找它的第一个数字串,并返回其个数

    /*查找字符串中的数字串问题 输入一个字符串,查找它的第一个数字串,并返回其个数 */ #include <stdio.h> char firstnum(char *input,char ...

  10. 【原创】Python 对象创建过程中元类, __new__, __call__, __init__ 的处理

    原始type: type是最原始的元类,其__call__方法是在你使用" t_class = type(classname_string, base_classes_tuple, attr ...