不要追求绝对的公平,红尘之中没有公平而言,人活一世,难得糊涂。                                           it is no use doing what you like, you have got to like what you do.

ruby连接数据库 oracle的方法之二:DBD

上一篇 / 下一篇  2009-09-19 11:32:50 / 个人分类:ruby_watir

查看( 699 ) / 评论( 6 )
每日随笔
  • 每日随笔:
ruby连接数据库 oracle的方法之二:DBD51Testing软件测试网qon.M:W rJ
51Testing软件测试网`a%O z$CGkP;`2?
DBD::OCI8 is a database driver of Ruby/DBI.51Testing软件测试网.S%A1[yt*yW#[#v$l

B5P6['t&Q&d7Z0q6g0如果你是是有那个PL/SQL程序的话,就可以顺利的执行以下的步骤了,因为DBD::OCI8会使用tnsname中的配置 通过PL/SQL访问数据库
w4IZf$v d nhJ0
'I |!J8[ IH`6H0我们来安装DBD::OCI8
1lm7Ftv)lV0
gOh%z;A'IXiWY0我使用的版本是:dbi-0.4.3
2WE'e9Z hK`s051Testing软件测试网Vop9a$W)Q;^
使用的安装文件是:dbi-0.4.3.gem51Testing软件测试网 dYn.Fr+pJ

,ctwdo.C0版本地址连接如下:http://rubyforge.org/projects/ruby-dbi/   或http://rubyforge.org/frs/?group_id=234&release_id=3899751Testing软件测试网 Ih` X Q(Hh Ud
51Testing软件测试网 yk5aZn-M
下载到:***\ruby\lib\ruby\gems\1.8\gems  51Testing软件测试网z%A]Ex t:mu

lC7m'Lw vR$_-Y0执行命令如下:gen install dbi-0.4.3.gem
~'@8@;XSS C$I[s0
w4l5N7d0RW0其他格式的安装文件,具体方法就不介绍了。。。。51Testing软件测试网aN(K9g$@)g b
51Testing软件测试网3gj4_)ok1f
安装成功后,验证是否连接通过,方法如下:51Testing软件测试网 d(X!Y.^S#I

3oi {"S L `3B3w0#使用的时候一定要加载dbi
4O5t:g4zT@J0require 'dbi'51Testing软件测试网S2k}L+[o

Y gKP+V-w+?0#创建DBI连接51Testing软件测试网I[n)Ix iVj U
dbh = DBI.connect('DBI:OCI8:dbname', 'username', 'password')
T+e1x\#R6T ZHJ0
5L|1f(_!Yo{Cc8T0使用相关函数介绍:
"V7_L_6] }d01)connect('DBI:OCI8:dbname', 'username', 'password')51Testing软件测试网5z]/v]2V,M"uL
connect 是DBI的连接函数51Testing软件测试网/C:_HH:wn3a
DBI:OCI8:---------是固定写好的51Testing软件测试网 @"I A{ z \5[g G
dbname   ------- 数据库名称 即:tnsnames
CjP0{i S0   如果连接是本地数据库的话:可以省略 例子如下:
k?#U3a M!X0   connect to a local server.51Testing软件测试网E"]R`_
   require 'dbi'51Testing软件测试网q Uf$SI9GX^ }
   dbh = DBI.connect('DBI:OCI8:', 'username', 'password')
51Testing软件测试网~ |g!P3Bx

t m!x#r"Zc |0username ------- 用户名51Testing软件测试网:AM;_^d
password ------- 密码
ZE.ZO)q^d7yL02)prepare(sql)   执行数据库操作函数51Testing软件测试网c b&c!?2QQZ+k^6w8X

5Q-a1z!y#@MN%J0例子如下:
H@(_%?~O0require "dbi"51Testing软件测试网X(A2e(p-h{E
51Testing软件测试网j,] ^[Q G v8C
db = DBI.connect("dbi:OCI8:mydb", "user", "password")
x8\M_L!u%S?0query = "select * from people"
.D/n9N:j8Ps?0
AB:?7SB"S#[[-\0stmt = db.prepare(query)51Testing软件测试网2}0T y;sb!q]"pz(|)UM
stmt.execute51Testing软件测试网 FxLd M$W
51Testing软件测试网&S![D)beb_8K)B s2g
while row = stmt.fetch do
B1vWzCh1zLM0puts row.join(",")51Testing软件测试网.JpgQu@;z)q)k$J
end51Testing软件测试网 Y8j&R*?2E+e C

:Op ZG"K`0stmt.finish51Testing软件测试网*Jt[@\;^P.i5J,q
db.disconnect51Testing软件测试网;g9H1qesfW1S
51Testing软件测试网!z[3n G+k,yHR p
如果你没有配置PL/SQL 没有本地的tnsname 后者不想使用本地的TNSname 就可以直自己去定义个函数:
HM)r.dv)cygz f0def open_connection51Testing软件测试网5@wf"p?_~
    tnsnames = '(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = somehost.somedomain.com)(PORT = 1521)) (CONNECT_DATA = (SID = some_sid)))'51Testing软件测试网pX0r b(]2dg
    connection = connect('DBI:OCI8:tnsnames', 'username', 'password')
.q s.Zg L/w*?&{ J0end51Testing软件测试网"om G%A-{T"k
至于open_connection函数后面是否需要配置参数,看项目需求了。如果你的项目数据库基本就是那么一个的话 就可以直接在里面定义了  
AsaLf%D@w:F051Testing软件测试网2];WI%m1oo*^-X%N
呵呵当然也可以传参数51Testing软件测试网&O%B&o)ffp p*U

/vA3H_v6x6|9eU!] s0数据库访问地址变化多的话 那就是要传参数了。。。51Testing软件测试网9uqKef eoy

.S't8hk h9W,R:A%{0DBI函数集 请参照ruby函数系列之一:DBI函数集
S] ^+Jo7Skot1x0
C$_ K+|6LDl G5h0[本帖最后由 Spark.lee 于 2009-9-19 11:32 编辑]

TAG:

ahtest发布于2010-03-12 13:57:54
正好要用...
e1king发布于2010-05-12 12:05:58
这个是不是也基于oci8来实现的啊?
xiaosan08发布于2011-02-19 09:42:43
路过看看的啊,给楼主顶了的啊……软件测试,软件测试论坛,软件测试方法,软件测试工具,软件测试流程,软件测试培训,软件测试外包,软件质量管理 ,软件缺陷跟踪,软件配置工具!D HpZ6FqM
http://a10.fyis.info中国软件测试人的精神家园,介绍先进的软件测试工具、 软件测试流程和软件测试思想,定期举办软件测试沙龙,软件测试精品 资料下载,提供专业的软件测试培训服务0N6k8A&ve
http://a11.fyis.infowww.51testing.comG8rc&g.q$c"M)Ak
http://a12.fyis.info
t@7B        u
}E%z+f'K:gD        r中国软件测试人的精神家园,介绍先进的软件测试工具、 软件测试流程和软件测试思想,定期举办软件测试沙龙,软件测试精品 资料下载,提供专业的软件测试培训服务
http://a13.fyis.info
/z'X"^1h
uY5n中国软件测试人的精神家园,介绍先进的软件测试工具、 软件测试流程和软件测试思想,定期举办软件测试沙龙,软件测试精品 资料下载,提供专业的软件测试培训服务
http://a14.fyis.info
E`,|l5[9|软件测试 - 软件测试论坛 - 软件缺陷跟踪 - 软件配置工具 - 测试用例设计 - Web测试 -  自动化测试工具http://a15.fyis.info51Testing软件测试网#C.I-U/^[[
http://a16.fyis.info51Testing软件测试网*Q5zj,M#Vu;bG
N3a

http://a17.fyis.info51Testing软件测试网(}5z,j&d)QRHk
http://a18.fyis.info软件测试 - 软件测试论坛 - 软件缺陷跟踪 - 软件配置工具 - 测试用例设计 - Web测试 -  自动化测试工具 u7UF6Q(n H Q
http://a19.fyis.info
vrqscl发布于2012-05-29 12:44:54
不服不行,楼主就是有水平
oalpha发布于2013-11-09 22:22:03
大家都使用ruby做测试吗?
Miss_love的个人空间 Miss_love 发布于2013-11-19 15:23:15
感谢分享。
我来说两句

(可选)

Open Toolbar