594: def use_connection
595: pool = nil
596: catch :found do
597: current_class = self
598: while current_class <= FlexiRecord::BaseRecord
599: throw :found if pool = current_class.thread_connection_pool
600: current_class = current_class.superclass
601: end
602: current_class = self
603: while current_class <= FlexiRecord::BaseRecord
604: throw :found if pool = current_class.connection_pool
605: current_class = current_class.superclass
606: end
607: raise "No connection pool set for #{self.name}."
608: end
609: pool.use_connection do |connection|
610: return yield(connection)
611: end
612: end