Is there a way with the DBI gem to figure out how many rows were
touched? I have the following ugly and naive code which, of course,
doesn’t give me the number of rows updated (but works like a charm
otherwise):
def run_query query
begin
dbh = DBI.connect( ‘DBI:ODBC:PACS’ )
statement_handle = dbh.prepare query
statement_handle.execute
rows = statement_handle.rows
statement_handle.finish
dbh.commit
rescue DBI::DatabaseError => e
puts “An error occurred”
puts “Error code: #{e.err}”
puts “Error message: #{e.errstr}”
dbh.rollback
ensure
# disconnect from server
dbh.disconnect if dbh
end
return rows rescue 0
end
def fix_ultrasounds
rows_updated = 0
[UPDATE_QUERY1, UPDATE_QUERY2].each do |q|
rows_updated += run_query q
end
puts “#{rows_updated} rows updated.”
end
Is there a way with the DBI gem to figure out how many rows were
touched?
rows = statement_handle.rows
With Ruby 1.8.4 and DBI 0.1.0 this line works as expected for me. Have
you checked the value of rows right after it’s assigned? Maybe there’s
something else going on.
Is there a way with the DBI gem to figure out how many rows were
touched?
� � rows = statement_handle.rows
With Ruby 1.8.4 and DBI 0.1.0 this line works as expected for me. Have
you checked the value of rows right after it’s assigned? Maybe there’s
something else going on.
Jeremy
It all looks fine, and works fine when separated from the rest of the
code; so it must be broken somewhere else. Thanks for helping me check
this bit, both of you
This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.