dongpo2340 2018-11-26 09:58
浏览 410
已采纳

使用Windows使用Golang与db2服务器连接

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

#!/bin/bash

 DB2HOME=$HOME/sqllib
 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 bitbucket.org/phiggins/db2cli/api.SQLAllocHandle(0x4f0001, 0x0, 0xc000071ef8, 0xc000071f00)
C:/Users/myuser/go/src/bitbucket.org/phiggins/db2cli/api/zapi_windows.go:44 +0x34 bitbucket.org/phiggins/db2cli.initDriver(0x0, 0x0) C:/Users/myuser/go/src/bitbucket.org/phiggins/db2cli/driver.go:26 +0x57 bitbucket.org/phiggins/db2cli.init.0() C:/Users/myuser/go/src/bitbucket.org/phiggins/db2cli/driver.go:52 +0x29 exit status 2

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

  • 写回答

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 11.1.3.3b) 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 golang.org/dl to default location c:\go.

    Downloaded phiggins-db2cli-*.zip from https://bitbucket.org/phiggins/db2cli

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

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

    In a db2cmd.exe window running as Adminstrator:

    cd %userprofile%\go\src\bitbucket.org\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 https://bitbucket.org/phiggins/db2cli

    The file I created was called testgo.go

    I then execute the sample program:

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

    --> successfully get the result set on screen

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥25 关于##爬虫##的问题,如何解决?:
  • ¥15 ZABBIX6.0L连接数据库报错,如何解决?(操作系统-centos)
  • ¥15 找一位技术过硬的游戏pj程序员
  • ¥15 matlab生成电测深三层曲线模型代码
  • ¥50 随机森林与房贷信用风险模型
  • ¥50 buildozer打包kivy app失败
  • ¥30 在vs2022里运行python代码
  • ¥15 不同尺寸货物如何寻找合适的包装箱型谱
  • ¥15 求解 yolo算法问题
  • ¥15 虚拟机打包apk出现错误