2018-11-26 09:58
浏览 279


I'm trying to make connection to a Db2 database using golang. I'm using package to make connection and using the Db2 client called v10.1fp6_ntx64_odbc_cli.

However when I see the instruction on phiggins package it suggest to rebuild package after providing few environment variables


 export CGO_LDFLAGS=-L$DB2HOME/lib
 export CGO_CFLAGS=-I$DB2HOME/include

 go build .

I'm new to golang and not sure how to perform this on Windows. I tried doing it using setting up environment variable but does not work. getting error

panic: Failed to load db2cli64.dll: The specified module could not be found. goroutine 1 [running]: syscall.(*LazyProc).mustFind(0xc000060270) C:/Go/src/syscall/dll_windows.go:280 +0x5f syscall.(*LazyProc).Addr(0xc000060270, 0x64) C:/Go/src/syscall/dll_windows.go:287 +0x32, 0x0, 0xc000071ef8, 0xc000071f00)
C:/Users/myuser/go/src/ +0x34, 0x0) C:/Users/myuser/go/src/ +0x57 C:/Users/myuser/go/src/ +0x29 exit status 2

Please help me to solve this , Looking to connect to a Db2 database using golang.

图片转代码服务由CSDN问答提供 功能建议

我正在尝试使用golang建立与Db2数据库的连接。 我正在使用建立连接,并使用名为 v10.1fp6_ntx64_odbc_cli 的Db2客户端。 代码>。


 #!/ bin / bash  
 DB2HOME = $ HOME / sqllib 
导出CGO_LDFLAGS = -L $ DB2HOME / lib 
导出CGO_CFLAGS = -I $ DB2HOME / include 
   \  n 

我是golang的新手,不确定如何在Windows上执行此操作。 我尝试使用设置环境变量来执行此操作,但是不起作用。 出现错误

应急:未能加载db2cli64.dll:找不到指定的模块。 goroutine 1 [正在运行]: syscall。(* LazyProc ).mustFind(0xc000060270) C:/Go/src/syscall/dll_windows.go:280 + 0x5f syscall。(* LazyProc).Addr(0xc000060270,0x64) C:/ Go / src / syscall / dll_windows.go:287 + 0x32,0x0,0xc000071ef8,0xc000071f00)
C:/Users/myuser/go/src/ /db2cli/api/zapi_windows.go:44 + 0x34,0x0) C:/Users/myuser/go/src/ .go:26 + 0x57 C:/Users/myuser/go/src/ + 0x29 \ n退出状态2


  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

1条回答 默认 最新

  • duanfeigui6655 2018-11-26 11:18

    The following steps let me connect to Db2 from golang on Windows7 pro x64. Your mileage may vary.

    I Used a recent "Db2 Runtime Client" package for Windows x64 downloadable from IBM website (in my case that was version and the filename I downloaded was v11.1.3fp3b_ntx64_rtcl.exe

    This is installed locally at location "c:\Program Files\IBM\sqllib" location (default).

    I have already a working gcc installed on Windows7 for other projects (it may be from minGW).

    I verified in a db2cmd.exe window that I can successfully connect via the CLP (which uses CLI) to the database of interest, using a specific port number and specific credentials. This way I know that the Db2-client is installed properly, and the Db2-server is running, the database is available, and credentials and port are all OK.

    Running as local administrator, Installed go for Windows from msi file downloaded from to default location c:\go.

    Downloaded phiggins-db2cli-*.zip from

    Created local directory: mkdir %userprofile%\go\src\\phiggins\db2cli

    Unzipped contents of the phiggins-db2cli-*.zip into %userprofile%\go\src\\phiggins\db2cli

    In a db2cmd.exe window running as Adminstrator:

    cd %userprofile%\go\src\\phiggins\db2cli

    Created a batch file buildgo.bat with the following contents:

    set DB2HOME="C:\program files\ibm\sqllib"
    set CGO_LDFLAGS=-L"C:\Program Files\IBM\sqllib\lib"
    set CGO_CFLAGS=-I"C:\Program Files\IBM\sqllib\include"
    go build .

    In a db2cmd window running as administrator, ran the batchfile, it completed without errors or messages with errorlevel 0.

    In the same db2cmd window, created a file containing the sample program shown at

    The file I created was called testgo.go

    I then execute the sample program:

    go run -conn DATABASE=sample;HOSTNAME=whatever;PORT=60000;UID=whatever;PWD=whatever;

    --> successfully get the result set on screen

    打赏 评论

相关推荐 更多相似问题