# File lib/amalgalite/statement.rb, line 91
    def execute( *params )
      bind( *params )
      begin
        # save the error state at the beginning of the execution.  We only want to
        # reraise the error if it was raised during this execution.
        s_before = $!
        if block_given? then
          while row = next_row
            yield row
          end
        else
          all_rows
        end
      ensure
        s = $!
        begin 
          reset_for_next_execute!
        rescue => e
        end
        raise s if s != s_before
      end
    end