企业应用中部署了众多的sybase,现将ruby连接sybase总结出来五步:
1、Sybase PC Client 12.52
a、安装;
b、配置环境变量:
SYBASE=c:\sybase
SYBASE_JRE=C:\sybase\shared-1_0\JRE-1_3
SYBASE_OCS=OCS-12_5
c、运行工具中的dsedit,设定一个名称,如test,配置地址和端口号,135.1.1.1,4100。这时候,会在sybase安装目录的ini目录中出现一个sql.ini文件,内容如下:
[test]
master=TCP,1.1.1.1,4100
query=TCP,1.1.1.1,4100
注意:这个文件非常重要,用在连接字符串中,其中test就是“host”对应着主机名。
2、ruby-sybase动态库;
下载ruby-sybase-winxp.zip(这是sybase-ctlib的windows版本,下载网址http://flesaker.no/software/sybase-ctlib/ ,如果在unix下使用,需要下载源代码进行编译),有三个文件:sybct.o/sybct.rb/sybsql.rb
复制到ruby运行目录的lib\ruby\site_ruby\1.8\i386-msvcrt下
3、下载activerecord-sybase-adapter,可以到github去;
下载后,进入目录,将sybase-adapter.rb拷贝到ruby\lib\ruby\gems\1.8\gems\activerecord-2.3.8\lib\active_record\connection_adapters目录下即可。
或者采用 gem install activerecord-sybase-adapter -s http://gems.rubyonrails.org 不过好像提示必须安装3.0.3的activerecord。
4、测试:
进入irb
require 'rubygems'
require 'active_record'
ActiveRecord::Base.establish_connection(
:adapter => "sybase",
:host => "test",
:username => "sa",
:password => '####',
:database => "####",
:numconvert => true
)
class M < ActiveRecord::Base
set_table_name 'tbl_Result_100665842_4'
end
注意:这里配置的host参数就是sybase客户端下ini目录下的sql.ini定义的“test”。
这时候敲入M,显示出来
=> M(StartTime: datetime, StartTimeDstOffset: integer, SvrStartTime: datetime, S
TSvrDstOffset: integer, EndTime: datetime, EndTimeDstOffset: integer, SvrEndTime
: datetime, ETSvrDstOffset: integer, InsertTime: datetime, TimezoneOffset: integ
er, ObjectNo: integer, GranulityPeriod: integer, ResultReliablityFlag: integer,
Counter_100991422: decimal, Counter_100991423: decimal, Counter_100991424: decim
al, Counter_100991425: decimal, Counter_100991426: decimal)
这样的库结构,说明正常。
常出现的问题:
a、sybase客户端安装之后的环境设置不准确,检查方式:打开cmd窗口,set,看看三个环境变量设置是否准确;
b、ruby-sybase动态库,需要区分windows还是unix的,复制到准确的位置。这一步如果做得有问题,会产生如下错误:
ActiveRecord::AdapterNotFound: database configuration specifies nonexistent syba
se adapter
from D:/ir3/ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.8/lib/active_re
cord/connection_adapters/abstract/connection_specification.rb:82:in `establish_c
onnection'
5、编写database.yml。写法参照ActiveRecord::Base.establish_connection中的连接字符串。
分享到:
相关推荐
Ruby 版数据库连接池, 可以参考。 数据库是postgresql
Ruby 连接数据库资源汇总。包括有:Ruby连接Mysql,oracle,postgreSQL,sqlite等包.还有ruby/DBI. 有GEM包,也有源代码包。
connection_pool, 用于 ruby的通用连接池 connection_pool 用于 ruby的通用连接池。MongoDB有自己的连接池。... 这是一个通用连接池,可以与任何 比如 。Dalli和其他 ruby 网络客户端一起使用。用法
ruby-snmp, SNMP ( 简单网络管理协议)的ruby 实现 用于 ruby的 SNMP库摘要这里库实现 SNMP ( 简单网络管理协议) 。 它在纯 ruby 中实现,因此不依赖于的外部库( 如 ) 。 你可以在 ruby 可以运行的任何地方运行这里库...
Ubuntu 11.04安装Ruby on rails 连接MySQL数据库.pdf
ruby代码ruby代码ruby代码ruby代码ruby代码ruby代码ruby代码ruby代码
ruby连接oracle驱动包,支持32位与64位操作系统 Developing applications with Oracle Database Build Ruby and Ruby on Rails applications using the ruby-oci8 driver or JRuby with the Oracle Enhanced ...
ruby DBI ruby DBI ruby DBIruby DBI ruby DBI ruby DBIruby DBI ruby DBI ruby DBIruby DBI ruby DBI ruby DBIruby DBI ruby DBI ruby DBIruby DBI ruby DBI ruby DBIruby DBI ruby DBI ruby DBIruby DBI ruby DBI ...
Ruby 与编码 常见问题 * 乱码的问题 * Ruby 中 Unable to convert "\x89" from ASCII-8BIT to UTF8 *Incompatible character encodings: ASCII- 8BIT and UTF-8
《Ruby完全自学手册》是一本完全...同时也希望能够与各位读者分享多年来积累的Ruby程序和网站开发的经验。 《Ruby完全自学手册》适合准备学习或了解Ruby语言和IRails框架的各类读者阅读,并可作为开发人员的参考手册。
ruby2ruby 提供一些用来根据 RubyParser 兼容的 Sexps 轻松生成纯 Ruby 代码的方法。可在 Ruby 中轻松实现动态语言处理。 标签:ruby2ruby
DBI 在 Ruby 代码与底层数据库之间提供了一个抽象层,允许您简单地实现数据库切换。它定义了一系列方法、变量和规范,提供了一个独立于数据库的一致的数据库接口。 DBI 可与下列进行交互: ADO (ActiveX Data ...
ruby源代码 ruby源代码 ruby源代码 ruby源代码2
Ruby编程,Ruby编程,Ruby编程,Ruby编程,Ruby编程,
ruby 连接mysql的gem安装包
ruby源代码 ruby源代码 ruby源代码 ruby源代码4
这是一个通用连接池,可以与任何组件(例如Redis,Dalli和其他Ruby网络客户端)一起使用。用法创建一个对象池以在Ruby应用程序中的光纤或线程之间共享: $memcached = ConnectionPool . new ( size : 5 , timeout :...
ruby笔记1ruby笔记1ruby笔记1ruby笔记1ruby笔记1ruby笔记1