ITPUB??ì3
ITPUB论坛 » 动态语言 » ruby连接ms access的小例子

新一届的微软MVP评选已经开始,欢迎各位推荐!

标题: ruby连接ms access的小例子
离线 上帝知道我
中级会员



精华贴数 0
个人空间 0
技术积分 1190 (1484)
社区积分 0 (1032075)
注册日期 2006-7-15
论坛徽章:0
      
      

发表于 2006-8-7 13:04 
ruby连接ms access的小例子

首先用ms access建立一个数据库,用默认值为db1,在其中建立一张表,如tb1。为测试方法,我设了两个段 :
字段名 类型
id 自动编号
name 文本(10)
输入一些测试数据:
ID: 1, Name: 刀
ID: 2, Name: 理
ID: 3, Name: 军
我输入了以上的数据。
下面就建立相应的代码:
代码:

require 'DBI'
  conn = DBI.connect('DBI:ODBC:rubydb1','','')
   sth = conn.execute("SELECT * FROM tb1"
   sth.fetch_hash do |row|
       printf "ID: %d, Name: %s\n",
               row["id"], row["name"]
   end
   sth.finish


其中rubydb1是我建立的数据源,后两个参数是放置用户名和密码的,我没设,所以留空。
这样就可以获得你相要的结果了,是不是很简单呢

还可以用DBI::Utils会更有趣,我把代码改了一下,如下 :
代码:

require 'DBI'
  conn = DBI.connect('DBI:ODBC:rubydb1','','')
   sth = conn.execute("SELECT * FROM tb1"
   rows = sth.fetch_all
   col_names = sth.column_names
   sth.finish
   DBI::Utils::TableFormatter.ascii(col_names, rows)

将得到如下的结果:
+----+------+
| id | name |
+----+------+
| 1 | 刀 |
| 2 | 理 |
| 3 | 军 |
+----+------+
这样打印表是不是很快:)

有人会问:能不能再演示一下ADO的用法?
有了ADO,ODBC我觉得比较过时的东西了.我现在在WINDOWS环境下玩,最
常用的就是SQL SERVER,ACCESS.
我也做点贡献,先要下一个DBI的包,解压出ADO.rb,安装到指定目录下,详细见帖子
http://www.railscn.com/viewtopic ... ighlight=SQL+SERVER

下面是实际代码,调通的.其中的连接字符串是从DELPHI程序拷贝过来的,呵呵

require 'DBI'
# conn = DBI.connect('DBI:ODBC:rubydb1','','')
conn = DBI.connect('DBI:ADO:Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source=C:\testProj\txl.mdb;Mode=Share Deny Read|Share Deny Write;Persist Security Info=False;')
sth = conn.execute("SELECT * FROM area"
#sth = conn.execute("SELECT * FROM txl"
rows = sth.fetch_all
col_names = sth.column_names
sth.finish
DBI::Utils::TableFormatter.ascii(col_names, rows)

以上是一个ACCESS的,SQL SERVER应该基本是相同的,改一下连接字符串就差不多 了.
RUBY灵活的特点在整理数据库的数据时应该会非常有用.


只看该作者    顶部
 
    

相关内容


CopyRight 1999-2006 itpub.net All Right Reserved.
北京皓辰广域网络信息技术有限公司. 版权所有
E-mail:Webmaster@itpub.net
京ICP证:010037号 联系我们 法律顾问