# File lib/dbi/dbi.rb, line 614 def prepare(stmt) raise InterfaceError, "Database connection was already closed!" if @handle.nil? sth = StatementHandle.new(@handle.prepare(stmt), false) sth.trace(@trace_mode, @trace_output) if block_given? begin yield sth ensure sth.finish unless sth.finished? end else return sth end end