module Ruport::Format

class SQL < Plugin

attr_accessor :dbh

def build_table_body
src = Ruport::Config.source(:default)
@dbh = DBI.connect(src.dsn, src.user, src.password)

data.each do |r|
output << "insert into #{@options.table_name} "
output << "(#{@data.column_names.join(',')}) "
output << "values (#{build_sql_values(r)});\n"
end

dbh.disconnect
end

def build_sql_values(row)
row.map {|v| @dbh.quote(v) }.join(',')
end

def method_missing(message, *args)
@options.send(message, *args)
end

Ruport::Renderer::Table.add_format self, :sql
end
end