#cli #connection-pool #db2 #rustdb2 #clidb2

bin+lib ibm_db

使用CLI驱动程序连接到DB2的工具

15个版本 (6个稳定版本)

1.0.5 2021年7月13日
1.0.4 2021年7月12日
1.0.3 2021年4月28日
1.0.1 2021年2月16日
0.1.1 2020年12月9日

#1464数据库接口

每月42次下载

MIT/Apache

310KB
5K SLoC

rust_ibm_db

为Rust提供对z/OS、LUW和i的DB2的接口,并支持使用r2d2进行连接池管理。

API文档

有关rust_ibm_db API的完整列表,请参阅ODBC文档

先决条件

RUST已安装(Rust版本应大于等于1.45)。通过在命令提示符中输入以下内容进行确认

>rustc --version

GIT已安装。通过在命令提示符中输入以下内容进行确认

>git --version

如果CLI驱动程序未安装,如何安装

使用以下链接从crates.io下载ibm_db crate

https://crates.io/api/v1/crates/ibm_db/1.0.5/download

完成后,解压缩.crate文件,该文件实际上是.tar.gz文件。

将"examples"文件夹中的setup.rs复制到RUST项目的"examples"文件夹下。

如果不存在,添加以下依赖项

[build-dependencies]
cc = "1.0"
winapi = "0.2"
user32-sys = "0.2"
sys-info = "0.7.0"
bitness = "0.4.0"
error-chain = "0.12.4"
tempfile = "3.1.0"
reqwest = "0.10.10"
tokio = { version = "0.2", features = ["full"] }
futures = "0.3.8"
zip = "0.5"
flate2 = "1.0"
tar = "0.4"

[dependencies]
winapi = "0.2"
user32-sys = "0.2"
sys-info = "0.7.0"
bitness = "0.4.0"
error-chain = "0.12.4"
tempfile = "3.1.0"
reqwest = "0.10.10"
tokio = { version = "0.2", features = ["full"] }
futures = "0.3.8"
zip = "0.5"
flate2 = "1.0"
tar = "0.4"
odbc-safe = "0.5.0"
odbc-sys = "0.8.2"
log = "0.4.1"
encoding_rs = "0.8.14"
prettytable-rs = "^0.8"
lazy_static = "1.0"
r2d2 = "0.8"

现在,运行以下命令一次,完成上述步骤后CLI驱动程序将安装

cargo run --package <package name i.e. ibm_db or <your package name>> --example setup

然后您可以从ibm_db crate使用"cargo install --path . "或"cargo install ibm_db"或根据您的方便简单地包含"ibm_db"驱动程序到您的cargo.toml中。

注意

为了使test/db程序运行,DSN需要配置。更新CLI驱动程序路径下的clidriver/cfg文件夹中的db2dsdriver.cfg文件(位于CLI驱动程序路径下)的相关详细信息。

例如如下

e.g.
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<configuration>
  <dsncollection>
	<dsn alias="dashdb4" host="[email protected]" name="FOO" port="0000"/>
	</dsncollection>

  <databases>
	<database host="[email protected]" name="FOO" port="0000"/>
	</databases>

</configuration>

使用来自Crates.io的最新版本将ibm_db包含在cargo.toml中

简单地在此RUST项目中包含此项目。

注意

如果尚未设置,将CLI驱动程序下载的路径添加到Windows/Linux/MACOS环境变量中的Path,即IBM_DB_HOME、PATH和LD_LIBRARY_PATH或DYLD_LIBRARY_PATH,具体取决于Windows/Linux/MACOS,例如

set PATH = C:/IBM/IBM_DATA_SERVER_DRIVER/clidriver/bin
set IBM_DB_HOME = C:/IBM/IBM_DATA_SERVER_DRIVER/clidriver
(or)
export LD_LIBRARY_PATH = /IBM/IBM_DATA_SERVER_DRIVER/clidriver/bin
export IBM_DB_HOME = /IBM/IBM_DATA_SERVER_DRIVER/clidriver
(or)
export DYLD_LIBRARY_PATH = /IBM/IBM_DATA_SERVER_DRIVER/clidriver/bin
export IBM_DB_HOME = /IBM/IBM_DATA_SERVER_DRIVER/clidriver

连接到数据库的许可要求

rust_ibm_db驱动程序可以在Linux、Unix和Windows上连接到DB2,无需任何额外的许可证,但是连接到DB2 z/OS或DB2 i(AS400)服务器需要客户端或服务器端许可证。客户端许可证需要复制到clidriver安装目录下的license文件夹中,对于激活服务器端许可证,您需要购买DB2 Connect Unlimited for System z®和DB2 Connect Unlimited Edition for System i®。

有关许可和购买成本的更多信息,请联系IBM客户支持

想了解更多关于基于服务器的许可(例如db2connectactivate)的信息,请点击以下链接

如何运行示例程序

要运行示例,即 main.rs,请执行以下操作:

cargo run

您还可以使用以下方式在examples文件夹下运行其他示例程序

cargo run --package ibm_db --example <example_name i.e. connect or list_tables etc.>
e.g. cargo run --package ibm_db --example connect

MACOS注意

如果您收到错误,例如“dyld:未找到库:libdb2.dylib”,请运行以下命令(请将RUST_CRATE_LIB>替换为您Rust程序根文件夹的路径)

install_name_tool -change libdb2.dylib $IBM_DB_HOME/lib/libdb2.dylib <RUST_CRATE_LIB>/target/debug/ibm_db

为ibm_db RUST项目做出贡献

请参阅CONTRIBUTING

The developer sign-off should include the reference to the DCO in remarks(example below):
DCO 1.1 Signed-off-by: Random J Developer <random@developer.org>

依赖关系

~18–32MB
~569K SLoC