不要追求绝对的公平,红尘之中没有公平而言,人活一世,难得糊涂。
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的方法之二:DBD
51Testing软件测试网qon.M:W
rJ51Testing软件测试网`a%O z$CGk P;`2?DBD::OCI8 is a database driver of Ruby/DBI.
51Testing软件测试网.S%A1[yt*yW#[#v$lB5P6['t&Q&d7Z0q6g0如果你是是有那个PL/SQL程序的话,就可以顺利的执行以下的步骤了,因为DBD::OCI8会使用tnsname中的配置 通过PL/SQL访问数据库
w4IZf$v d
nhJ0'I|!J8[IH`6H0我们来安装DBD::OCI8
1lm7Ftv)lV0gOh%z;A'I XiWY0我使用的版本是:dbi-0.4.3
2WE'e9ZhK`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` XQ(Hh
Ud51Testing软件测试网 yk5aZn-M下载到:***\ruby\lib\ruby\gems\1.8\gems
51Testing软件测试网z%A]Ex t:mulC7m'Lw vR$_-Y0执行命令如下:gen install dbi-0.4.3.gem
~'@8@;XSS
C$I[s0w4l5N7d0RW0其他格式的安装文件,具体方法就不介绍了。。。。
51Testing软件测试网aN(K9g$@)g
b51Testing软件测试网3gj4_)ok1f安装成功后,验证是否连接通过,方法如下:
51Testing软件测试网 d(X!Y.^S#I3oi {"S L`3B3w0#使用的时候一定要加载dbi
4O5t:g4zT@J0require 'dbi'
51Testing软件测试网S2k}L+[oYgKP+V-w+?0#创建DBI连接
51Testing软件测试网I[n)Ix iVj
Udbh = DBI.connect('DBI:OCI8:dbname', 'username', 'password')
T+e1x\#R6T ZH J05L|1f(_!Yo{Cc8T0使用相关函数介绍:"V7_L_6]}d01)connect('DBI:OCI8:dbname', 'username', 'password')
51Testing软件测试网5z]/v]2V,M"uLconnect 是DBI的连接函数
51Testing软件测试网/C:_HH:wn3aDBI:OCI8:---------是固定写好的
51Testing软件测试网 @"IA{
z
\5[gGdbname ------- 数据库名称 即: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!P3Bxt
m!x#r"Zc|0username ------- 用户名
51Testing软件测试网:AM;_^dpassword ------- 密码
ZE.ZO)q^d7yL02)prepare(
sql) 执行数据库操作函数
51Testing软件测试网c b&c!?2QQZ+k^6w8X5Q-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)Bs2g
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软件测试网;g9H1q esfW1S
51Testing软件测试网!z[3n
G+k,yHR
p如果你没有配置PL/SQL 没有本地的tnsname 后者不想使用本地的TNSname 就可以直自己去定义个函数:
HM)r.dv)cygz f0def open_connection
51Testing软件测试网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*?&{J0end
51Testing软件测试网"om
G%A-{T"k至于open_connection函数后面是否需要配置参数,看项目需求了。如果你的项目数据库基本就是那么一个的话 就可以直接在里面定义了
AsaLf%D@w:F051Testing软件测试网2];WI%m1oo*^-X%N呵呵当然也可以传参数
51Testing软件测试网&O%B&o)ffpp*U/vA3H_v6x6|9eU!]s0数据库访问地址变化多的话 那就是要传参数了。。。
51Testing软件测试网9uqKefeoy.S't8hk h9W,R:A%{0DBI函数集 请参照ruby函数系列之一:DBI函数集
S]
^+Jo7Skot1x0C$_
K+|6LDlG5h0[
本帖最后由 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
-
路过看看的啊,给楼主顶了的啊……软件测试,软件测试论坛,软件测试方法,软件测试工具,软件测试流程,软件测试培训,软件测试外包,软件质量管理 ,软件缺陷跟踪,软件配置工具!DHpZ6FqM
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(nHQ
http://a19.fyis.info
-
vrqscl发布于2012-05-29 12:44:54
-
不服不行,楼主就是有水平
-
oalpha发布于2013-11-09 22:22:03
-
大家都使用ruby做测试吗?
-
Miss_love
发布于2013-11-19 15:23:15
-
感谢分享。