用ruby从sqlite数据库获取记录

时间:2012-08-10 12:14:36

标签: ruby sqlite

我使用ruby创建了一个带有sqlite数据库的简单产品表。我可以按照正常的select语句检索recors,并将product_code作为where条件传递。 每当我检索一条记录时,我希望能够将记录存储在一个数组中并添加到所选项目的价格中以获得总价值,就像在线购物篮一样。 我在ruby中没有rails,只是控制台。 选择陈述的例子

def select(item_code)
 item_code = item_code
 begin
   db = SQLite3::Database.new "test.db"
   results = db.get_first_row "SELECT * FROM Products WHERE Product_code = ?",    
              item_code
   puts results.join "\s"

  rescue SQLite3::Exception => e 

  puts "Exception occured"
  puts e

ensure
db.close if db
end

谢谢。

1 个答案:

答案 0 :(得分:0)

尝试这样的事情

$prices, $index_of_price = [], 0
#index_of_price is the index of the field in your result

def select(item_code) 
  begin 
    db = SQLite3::Database.new "test.db" 
    results = db.get_first_row "SELECT * FROM Products WHERE Product_code = ?", item_code 
    $prices << results[$index_of_price]
  rescue
    puts $!
  ensure 
   db.close if db
  end
end 

select 1
select 2

puts "Total is #{$prices.inject(0){|sum,item| sum + item}}"