Archive for the ‘Ruby’ Category

[原创]Ruby读MS Access

Thursday, September 13th, 2007

此文章我已经发布在http://www.gcs8.cn软工吧论坛。欢迎转载,注明出处即可,呵呵! Ruby连接MS Access数据库,实际上是十分简单的。 假设有一个Access数据库文件 example.mdb 一个表叫issue结构很简单: 几个字段:IssueNumber,AssignedTo,RaisedBy,IssueName,Description, (数据根据字段名字就能猜出类型)。 我们以在Windows操作系统下为例,首先需要配置ODBC,大体就是在控制面板-管理工具-数据源(ODBC)中添加系统数据源,我们把数据源名字命名为:IssueTracker。配置好数据源,剩下的一切都很简单了。 代码如下: require 'DBI' conn = DBI.connect('DBI:ODBC:IssueTracker','','') sth = conn.execute("SELECT IssueNumber,RaisedBy,AssignedTo,IssueName,Description FROM issue where IssueNumber<500") rows = sth.fetch_all col_names = sth.column_names sth.finish DBI::Utils::TableFormatter.ascii(col_names, rows) 运行一下,显示结果为: +-------------+----------+------------+------------------------------------------- -----------------------------------+---------------------------------------------- ---------------------------------------------------------------------------------- ---------------------------------------------------------------------------------- ---------------------------------------------------------------------------------- ---------------------------------------------------------------------------------- ---------------------------------------------------------------------------------- ---------------------------------------------------------------------------------- ---------------------------------------------------------------------------------- ---------------------------------------------------------------------------------- ---------------------------------------------------------------------------------- -----------+ | IssueNumber | RaisedBy | AssignedTo | IssueName | Description | +-------------+----------+------------+----------------------------------------- -------------------------------------+-------------------------------------------- ---------------------------------------------------------------------------------- ---------------------------------------------------------------------------------- ---------------------------------------------------------------------------------- ---------------------------------------------------------------------------------- ---------------------------------------------------------------------------------- ---------------------------------------------------------------------------------- ---------------------------------------------------------------------------------- ---------------------------------------------------------------------------------- ---------------------------------------------------------------------------------- -------------+ | 377        | NULL    | NULL      | NULL | none | | 401        | 张三    | 李四    | 软工吧论坛是个好论坛册 |  软工吧论坛是个好论坛,的确是个好论坛。 经过实际测试,读取500条数据非常耗费时间,Ruby的执行速度的确不快,根据以前写过的一个VB程序,Ruby读Access中500条数据和VB读取Access中40000条数据时间竟然基本相同,看来处理数据有的时候不适合用Ruby。当然这只是个人在实际开发中碰到的事,如果有理解错误的地方,还望不吝留言赐教。

[原创]Ruby操作文件(以日期命名文件,把日期写进文件,适合操作日志用)

Wednesday, August 29th, 2007

今天一个老同学让我帮他去维护一个刚开业的技术论坛,帮他发几个ruby的帖子。写了一个,转了几个别人的,算给他交了工。既然是自己写的,当然也要放到自己的blog里了。 Ruby操作文件(以日期命名文件,把日期写进文件,适合操作日志用) ruby操作文件是相当简单啊,比C语言的file简单多了,看一段代码: 这就是获取当前日期,并用当前日期命名文件,并且把日期写进文件的代码段。 t=Time.now.strftime("%Y-%m-%d--%H:%M") tt=Time.now.strftime("%Y-%m-%d--%H-%M.txt") aFile=File.new(tt,"w") aFile.puts"开始时间"+t 来分析一下: 首先看一下基本知识: 写入文件, fh = File.new("temp.out", "w")  #创建一个可写文件流 fh.puts f #写入数据 fh.close #关闭文件流 有写程序经验的,尤其是做个C操作文件的看起来应该很简单。 现在来分析我写的代码: 第一行获取当前日期,还不明白的去看ruby手册; 第二行只不过是把日期中时间的那个冒号替换成横杠,为啥呢?因为windows操作系统里的那个文件命名方式不能用冒号,当时调试程序时郁闷了我半天,最后时刻才想起来。。。。。。经验啊! 第三行就是创建文件,并且有写权限了,很简单吧,哈哈! 第四行给创建好的文件写个开头。 后面如果你还想写什么进去,构建aFile.puts""代码就可以了。 总结: 如何?简单吧?ruby的代码书写很像是在写文章,很类似自然语言,或许这也是未来计算机程序语言的发展趋势吧。