Ruby-aci接口简介

Ruby,一种简单快捷的面向对象(面向对象程序设计)脚本语言,在20世纪90年代由日本人松本行弘(Yukihiro Matsumoto)开发,遵守GPL协议和Ruby License。它的灵感与特性来自于Perl、Smalltalk、Eiffel、Ada以及 Lisp 语言。由 Ruby 语言本身还发展出了JRuby(Java平台)、IronRuby(.NET平台)等其他平台的 Ruby 语言替代品。

Ruby明显比其他类似的编程语言(如Perl或Python)年轻,又因为Ruby是日本人发明的,所以早期的非日文资料和程序都比较贫乏,所以在网上仍然可以找到类似“Ruby的资料太少”之类的批评。约于2000年,Ruby开始进入美国,英文的资料开始发展。Ruby归根结底源于Perl和Lisp两类语言,与C,C++,C#,java是不同大类。

神通数据库Ruby-aci是从访问Oracle的Ruby-oci8移植而来,两者保持使用的高度兼容。Ruby-aci依赖ACI接口与数据库进行交互。Ruby-aci可以支持通过DBI方式访问数据库,也可以直接用Ruby-aci访问数据库。

直接访问:

../../../../_images/lay11.png

DBI方式访问:

../../../../_images/lay21.png

Ruby-aci安装

Linux下安装

安装 nodejs

yum install nodejs

ruby 安装

安装方式:源码安装

ruby 版本:2.4.6

源码地址:https://github.com/ruby/ruby.git

安装过程:

./configer

make

make install

注解

也可以直接用yum安装rpm包,需要按照ruby及ruby-devel。

gem 安装

安装方式:源码安装

gem 版本:3.0.3

源码地址:https://github.com/rubygems/rubygems.org.git

安装过程:

ruby setup.rb

注解

gem是ruby的一个安装包管理工具,可以用它来安装和协助所需的ruby模块。

DBI安装

如果需要用DBI的方式访问数据库,就必须按照DBI模块。

dbi 版本:0.4.5

安装方式:gem 包

安装过程:

gem install dbi-0.4.5.gem

Ruby-aci 安装

Ruby-aci代码在$SZ_OSCAR_HOME/drivers/ruby-aci目录下,安装方式有两种:

方式1:采用gem安装包进行安装:

使用ruby-aci的源码进行编译安装:

gem build ruby-aci.gemspec

gem install ruby-staci-2.2.9.gem

需要注意的是aci相关的头文件及库文件需要是最新的。

方式2:源码安装

进入Ruby-aci目录,执行以下步骤:

ruby setup.rb config

ruby setup.rb setup

ruby setup.rb install

以上三步要确保执行正确。

Windows下安装

Ruby安装

Windows下安装ruby相对简单,可以下载rubyinstaller,下载链接:

https://rubyinstaller.org/downloads/

或者

https://github.com/oneclick/rubyinstaller2/releases

下载ruby+devkit版本,下载x64(64位)或x86(32位)与操作系统位数对应。

下载完成后根据向导进行安装,安装完成后,当前环境就具备了ruby、gem、msys2以及msys2+mingw的编译工具链环境了。

Ruby-aci安装

  • 方式1:采用gem安装包进行安装:

进入到ruby-aci的源码目录进行编译安装:

gem build ruby-aci.gemspec

gem install ruby-staci-2.2.9.gem

  • 方式2:源码安装

使用ruby-aci的源码进行编译安装,需要打开MSYS2 MinGW 64-bit (或者在cmd中执行msys2_shell.cmd -mingw64),这样可以打开一个在windowx下面类似Linux下的shell操作终端。在这个终端下面必须采用Linux的shell操作方式进行查找:

将ruby的bin目录添加到path环境变量中(需要注意路径的编写方式):

export $PATH:/D/Ruby31-x64/bin

编译和安装Ruby-aci:

ruby setup.rb config

ruby setup.rb setup

ruby setup.rb install

注解

以上两种方式编译ruby-aci依赖神通数据库的SZ_OSCAR_HOME,且会使用$SZ_OSCAR_HOME/aci/include和$SZ_OSCAR_HOME/bin/libaci.so。建议更新最新的aci头文件和库文件到最新版本,否则可能编译失败。

使用Ruby-aci的样例

将下来内容写入到ruby-aci-demo.rb文件中

#引入staci模块
require 'staci'
#连接串
conn = STACI.new('SYSDBA', 'szoscar55', 'localhost:2003/OSRDB')
a =[]
puts "增删改查"
#建表
cursor = conn.exec("create table data_test (a integer , name char(16) , age integer )")
#插入数据
cursor = conn.exec("insert into data_test values(1,'l',24)")
#查询
cursor = conn.exec('select * from data_test') { |r| a<<r; puts r.join('')}

执行ruby-aci-demo.rb

ruby ruby-aci-demo.rb

执行成功打印如下:

[root@qt596 ruby-aci]# ruby ruby-aci-demo.rb

增删改查

1l 24