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访问数据库。
直接访问:
DBI方式访问:
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模块。
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