![]() |
DBI: number of rows updated?
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 -- Posted via http://www.ruby-forum.com/. |
Re: DBI: number of rows updated?
On Dec 24, 7:35*am, Aldric Giacomoni <ald...@trevoke.net> wrote:
> 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 |
Re: DBI: number of rows updated?
Aldric Giacomoni wrote:
> statement_handle.execute Have you checked the return value from this lin? > return rows rescue 0 The 'rescue 0' is superfluous here, it can never be triggered. Maybe you want: return rows || 0 (i.e. if rows is nil, return 0). Note that even if the statement which assigns to rows has never been executed, it will contain nil. e.g. if false foo = 123 end puts foo.inspect # shows nil -- Posted via http://www.ruby-forum.com/. |
Re: DBI: number of rows updated?
yermej wrote:
> On Dec 24, 7:35�am, Aldric Giacomoni <ald...@trevoke.net> wrote: >> 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 :) -- Posted via http://www.ruby-forum.com/. |
| All times are GMT. The time now is 03:50 AM. |
Powered by vBulletin®. Copyright ©2000 - 2013, vBulletin Solutions, Inc.
SEO by vBSEO ©2010, Crawlability, Inc.