博文

ruby-dbi连sql server(2007-03-28 11:30:00)

摘要:已经困扰很久的问题,在网上查找,用别人的方法一路走下来,怎么都不行。go on......... 还是不行,上网看别人几乎也是这么做的,可是在自己这里却报错。郁闷 必须要做的要忙的事终于结束,可以有一段时间慢慢做自己想做的事了,呵呵,真好。公司位子新换了,挺兴奋的,呵呵。可以转头就看见外面蓝天了,呵呵。真好 似乎ruby的dbi连sql数据本身就有问题,在网上找到了东西如下:There is something seriously wrong with DBI support for SQL server. I have tried both DBI::ODBC and DBI:ADO and the following code always fails. ---------- Code require 'dbi' host= "DEVELOPMENT_DATABASE_SERVER" database="adventureworks2000" username="someusername" password="Somepwd" db = DBI.connect("DBI:ADO:Provider=SQLOLEDB;Data Source=#{host};Initial Catalog=#{database};User Id=#{username};Password=#{password};") sql= 'Select FirstName, LastName from contact' sth = db.prepare(sql) sth.execute # Print out each row while row=sth.fetch do p row db.do("select * from contact where 1 = 2") end --------------------- This is the error message you get. D:/InstantRails/ruby/lib/ruby/site_ruby/1.8/DBD/ADO/ADO.rb:135:in `execute': Execute (DBI::DatabaseError) ......

阅读全文(4844) | 评论:1

测试用例设计--软件测试的艺术之第四章(2007-03-26 11:14:00)

摘要:软件测试中最重要的因素是和生成有效的测试用例,努力使测试尽可能完全,这是最显然的测试策略。由于时间和成本的,软件测试的最关键问题是:在所有可能的测试用例中,哪个子集最胡可能发现最多的错误(还记得软件测试原则里有一个:程序某部分存在更多的错误的可能性,与该部分已发现错误的数量成正比)......

阅读全文(1617) | 评论:0

英文太差(2007-03-25 16:31:00)

摘要:论文发到老师处,回收的文档,被改得面目全非,英文太差了。上学期做的规则挖掘算法昨天又有问题,不想问他,自己慢慢找错。从昨天下午开始,今天早上才知道是置信度算错了,其原因是前件个数错了,原来是参数传错了,追源溯流,自己慢慢找,慢慢想,怎么改,改过来,还是不对,原来是规则转置之前有的规则就被删掉了,没想好怎么改,吃饭回来,突然想到,可以全部规则生成后,在做数据库插入时再做筛选,试了下,搞定。于是从昨天晚上开始到今天中午稍后的时间里都在改这个,原来的计划没有实现。真是计划跟不上变化。还得看论文,被改得面目全非,惭愧至极! java中:1) 函数是可以返回到局部数据时,但是在调用时一定要保存,自己觉得:一个方法,最好有返回值和参数,这样在之后看程序的时候就会知道做什么需要什么参数,一目了然,不用再去苦苦寻找。2)一个面向对象的语言,自己觉得要想好有哪些成员,这个成员会在哪里用到,于已来说,这个设计是个问题。3)感觉有些问题,知道用哪个函数了,就怎么怎么解决了,看API很重要。 记住:任何事情都会有解决方法的,找一个比较好的解决方法是做事根本。有的时候,不要心浮气燥,静下心来,安安静静的慢慢找,比心急的结果要好很多 PS:脚本语言正在学习中,开发环境没有提示功能,不爽,有时很不爽......

阅读全文(2085) | 评论:0

ruby中的hash对象的使用(2007-03-23 10:00:00)

摘要:今天要搞清楚ruby中的hash对象的使用。例子:怎样把数据库中的表格数据按(property,value)的形式从数据库中读出,并保存到hash中,将property看成key,而将vulue看成hash中的value?......

阅读全文(1730) | 评论:0

windows XP 自动关机(未解)(2007-03-23 09:48:00)

摘要:昨晚机子杀毒,每次总是早上起床后手动关机,后来听同学说可以实现自动关机,俺也来实现下,上网查内容如下:  Windows XP的关机是由Shutdown.exe程序来控制的,位于Windows\System32文件夹中。如果想让Windows 2000也实现同样的效果,可以把Shutdown.exe复制到系统目录下。

  比如你的电脑要在22:00关机,可以选择“开始→运行”,输入“at 22:00 Shutdown -s”,这样,到了22点电脑就会出现“系统关机”对话框,默认有30秒钟的倒计时并提示你保存工作。如果你想以倒计时的方式关机,可以输入“Shutdown.exe -s -t 3600”,这里表示60分钟后自动关机,“3600”代表60分钟。

   设置好自动关机后,如果想取消的话,可以在运行中输入“shutdown -a”。另外输入“shutdown -i”,则可以打开设置自动关机对话框,对自动关机进行设置。

  Shutdown.exe的参数,每个都具有特定的用途,执行每一个都会产生不同的效果,比如“-s”就表示关闭本地计算机,“-a”表示取消关机操作,下面列出了更多参数,大家可以在Shutdown.exe中按需使用。

  -f:强行关闭应用程序

  -m \\计算机名:控制远程计算机

  -i:显示图形用户界面,但必须是Shutdown的第一个选项

  -l:注销当前用户

  -r:关机并重启

  -t 时间:设置关机倒计时

  -c "消息内容":输入关机对话框中的消息内容(不能超127个字符)
其实只要用at 22:00 Shutdown -s命令更改时间即可 不过,有一个问题:并不知道杀毒的具体时间,能不能杀完后,自动关机?......

阅读全文(2085) | 评论:3

用ruby连数据库(悬)(2007-03-22 18:15:00)

摘要:require 'win32ole' class DataConn
def DataConn.runSql(str)
   adoConn = WIN32OLE.new('ADODB.Connection')  
   adoConn.ConnectionString = "driver={SQL Server};Server=Server's name; Database=Database's name;UID=sa; PWD=sa"   
   adoConn.Open   
   adoConn= adoConn.execute(str)   
   return adoConn.Fields(0).Value
  end
end $str="select opername from operators where id='zhaodw'"
$name=DataConn.runSql($str)
puts $name             输出为zhaodw 上面为用ruby和数据库相连代码(感觉和java与jdbc连雷同)。DataConn.runSql为类方法,即不用创建实例可直接调用,例上:$name=DataConn.runSql($str)。其中$str为要执行的sql语句 疑问是:现在试的是从数据库中取出一个字符变量,但是想做的是多个属性值对呢?将从数据库中取出的内容放入hashtable中要如何?  ......

阅读全文(1674) | 评论:0

前人种树后人乘凉-watir 处理弹出窗口(2007-03-22 15:38:00)

摘要:在web页面中,经常有弹出窗口。要怎么解决? 新建一个clickConfirmOK.rb的文件,里面代码如下: require 'watir/WindowHelper'
$helper = WindowHelper.new
$helper.push_confirm_button_ok() 然后再其它要用到的文件中调用命令如下:   Thread.new { system("rubyw clickConfirmOK.rb") } 注意语句不一定在你想放的位置,要多试几次。 这个问题虽然解决了,但是,语句为什么这样,没有理解。
......

阅读全文(3618) | 评论:4

IEDevToolbar安装及使用(2007-03-22 15:02:00)

摘要:写测试脚本时,需要用到web上的各个控件name or value or id。我总是把网页保存成htm文档再用dreamweaver打开然后查看,今天被一同学看到说了一句再恰当不过的话:你这不是用大炮打蚊子么?!呵呵,笑死我了。然后被推荐了一个微软工具:IEDevToolbar 接收到文件后,关掉IE,直接运行安装,exit后,再打开IE,咦,怎么还是没有工具栏。此时,查看-->工具栏-->Developer Toolbar勾上,即可了。这是英文版本的安装 此外,中文安装如下: 下载文件后解压,如果已安装英文版,则关闭所有的IE程序后覆盖IEDevToolbar.dll文件(默认安装路径为:\Program Files\Internet Explorer Developer Toolbar)。 如果没有安装英文版,则可以将IEDevToolbar.dll文件解压到\Windows\System32目录下,然后运行:regsvr32 IEDevToolbar.dll即可。 附上下载链接:http://www.bentium.org/ReadNews.asp?NewsID=337 使用:后点击‘查看DOM’,然后在下面出现的‘查找’里,勾上‘通过点击获取元素’,就可以了,如果不想要的话再点‘查看DOM’,就能不显示控件了
......

阅读全文(10019) | 评论:2

ruby面向对象(未解)(2007-03-22 09:54:00)

摘要:ruby是面向对象的脚本语言,几个字说明了它的最大的特性。但是既然作为面向对象的语言,面向的三个主要明显的特性:继承性,封装性,多态性。又是如何实现的呢? 脚本语言,现在的理解是对变量要求定义超级松懈很不严格,如变量可以不声明不赋初值直接使用,拿来即用(局部变量除外local variable),方法定义中的参数看作局部变量,如不声明直接使用,则会出现错误: class Song
    def initialize(artist,duration)
  @name=name
  @artist=artist
  @duration=duration
  end
end song = Song.new("Bicylops","Fleck",260)  name没有在方法initialize中声明,则会出错 注:initialize是一个特殊的方法,(我理解为类似于构造函数)......

阅读全文(1598) | 评论:0

测试脚本一(2007-03-21 13:53:00)

摘要:试写了下测试脚本,最简单的,只是实现了功能,没有按照面向对象的定义来编写代码,而只是方法的堆砌,如下:   $url="http://test.sme.agent.com/"
  $ie = Watir::IE.new
  $ie.goto($url)
  $ie.maximize()
 
  $ie.text_field(:name, "username").set('username')
  $ie.text_field(:name, "password").set('pwd')
  $ie.button(:value, "登 录").click
 
  #  chose the production's type
  $ie.frame("left").link(:text,"促销商品").click
 
  #  input the old user
  $ie.frame("right").text_field(:name , "operLogName").set('patient123')
 
  $ie.frame("right").button(:value,"下一步").click
  $ie.frame("right").button(:value,"下一步").click
  #  chose the new production 新买三送一
# $ie.frame("right").link(:URL,"URL地址")
#  $ie.frame("right").link(:name,"bt_order")
#   $ie.frame("right").link(:aftertext,"新买三送一").click
  $ie.frame("right").link(:index,1).click
  #  ie.link(:text ,......

阅读全文(1908) | 评论:0