本人用go做了一个windows服务,里面会涉及到执行一个sql存储过程返回多个数据集的情况,
通过官方给
rows, err := db.Query(q, age)
if err != nil {
log.Fatal(err)
}
defer rows.Close()
for rows.Next() {
var (
id int64
name string
)
if err := rows.Scan(&id, &name); err != nil {
log.Fatal(err)
}
fmt.Printf("id %d name is %s\n", id, name)
}
if !rows.NextResultSet() {
log.Fatal("expected more result sets", rows.Err())
}
var roleMap = map[int64]string{
1: "user",
2: "admin",
3: "gopher",
}
for rows.Next() {
var (
id int64
role int64
)
if err := rows.Scan(&id, &role); err != nil {
log.Fatal(err)
}
fmt.Printf("id %d has role %s\n", id, roleMap[role])
}
if err := rows.Err(); err != nil {
log.Fatal(err)
}
这种方式去读取多个数据的值。
本地编译出来的exe直接双击运行能够成功执行并返回结果,但是注册成windows服务后一运行到这地方程序就停了。
请大神指点迷津
更多评论
![1.PNG](https://static.studygolang.com/180920/2c9f7b17343c98a8013dea9a75fbb924.PNG)![2.PNG](https://static.studygolang.com/180920/ddde38904b819b04bc6546e69b9aefcf.PNG)
图一就是遍历结果集,图二就是具体的服务注册安装
#2