当前位置:   article > 正文

Go语言通过odbc驱动连接华为高斯数据库_华为高斯数据库 golang

华为高斯数据库 golang

1.下载odbc驱动

下载后安装psqlodbc_x64.msi

安装成功后可在odbc数据源中看到以下内容

2.测试odbc驱动

在用户dsn中选择添加

输入对应的连接内容点击test

如果显示以下内容则表示驱动正常可使用odbc连接高斯数据库

3.go 语言编写

其中依赖包需要使用命令安装

  1. go get github.com/alexbrainman/odbc
  2. go get github.com/axgle/mahonia
  3. go get github.com/go-xorm/xorm
  4. go get xorm.io/core

1)如果出现 golang.org/x/ 下包下载不下来的问题

https://studygolang.com/articles/19051?fr=sidebar

https://studygolang.com/articles/24075?fr=sidebar

  1. package main
  2. import (
  3. "fmt"
  4. _ "github.com/alexbrainman/odbc" // google's odbc driver
  5. "github.com/axgle/mahonia"
  6. "github.com/go-xorm/xorm"
  7. "xorm.io/core"
  8. )
  9. type Address struct {
  10. Addressid int64 `xorm:"addressid"`
  11. Address1 string `xorm:"address1"`
  12. Address2 string `xorm:"address2"`
  13. City string `xorm:"city"`
  14. Postalcode string `xorm:"postalcode"`
  15. }
  16. // 字符串解码函数,处理中文乱码
  17. func ConvertToString(src string, srcCode string, tagCode string) string {
  18. srcCoder := mahonia.NewDecoder(srcCode)
  19. srcResult := srcCoder.ConvertString(src)
  20. tagCoder := mahonia.NewDecoder(tagCode)
  21. _, cdata, _ := tagCoder.Translate([]byte(srcResult), true)
  22. result := string(cdata)
  23. return result
  24. }
  25. func main() {
  26. engine, err := xorm.NewEngine("odbc", "Driver={PostgreSQL Unicode(x64)};Server=XXXXXX; Port=8000;UID=dbadmin;PWD=XXXXXXX; Database=gaussdb;Pooling=true;Min Pool Size=1")
  27. if err != nil {
  28. fmt.Println("new engine got error:", err)
  29. return
  30. }
  31. engine.ShowSQL(true) //控制台打印出生成的SQL语句;
  32. engine.Logger().SetLevel(core.LOG_DEBUG)
  33. if err := engine.Ping(); err != nil {
  34. fmt.Println("ping got error:", err)
  35. return
  36. }
  37. // 1) sql查询
  38. results, err := engine.Query("select * from table_name")
  39. if err != nil {
  40. fmt.Println("查询出错:", err)
  41. return
  42. }
  43. for i, e := range results {
  44. fmt.Printf("%v\t", i)
  45. for k, v := range e {
  46. fmt.Printf("%v=%v\t", k, ConvertToString(string(v), "utf-8", "utf-8"))
  47. }
  48. fmt.Printf("\n")
  49. }
  50. fmt.Println("*******************************")
  51. }

运行结果

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/136070
推荐阅读
相关标签
  

闽ICP备14008679号