lib/spiderfw/model/storage/db/adapters/mysql.rb in spiderfw-0.6.26 vs lib/spiderfw/model/storage/db/adapters/mysql.rb in spiderfw-0.6.27

- old
+ new

@@ -72,11 +72,11 @@ } class << self; attr_reader :reserved_kewords, :type_synonyms, :safe_conversions, :field_types, :field_flags end def self.new_connection(host=nil, user=nil, passwd=nil, db=nil, port=nil, sock=nil, flag=nil) - conn = ::Mysql.new(host, user, passwd, db, port, sock, flag) + conn = ::Mysql.new(host, user, passwd, db, port.to_i, sock, flag) conn.autocommit(true) conn.query("SET NAMES 'utf8'") return conn end @@ -220,59 +220,63 @@ end ensure query_finished release if curr[:conn] && !in_transaction? end - end + end - def prepare(sql) - debug("mysql preparing: #{sql}") - return curr[:stmt] = connection.prepare(sql) - end + def prepare(sql) + debug("mysql preparing: #{sql}") + return curr[:stmt] = connection.prepare(sql) + end - def execute_statement(stmt, *bind_vars) - stmt.execute(*bind_vars) - end + def execute_statement(stmt, *bind_vars) + stmt.execute(*bind_vars) + end - def total_rows - return curr[:total_rows] - end + def total_rows + return curr[:total_rows] + end - def prepare_value(type, value) - value = super(type, value) - return value unless value - case type.name - when 'String' - return value.to_s - when 'Date' - return value.strftime("%Y-%m-%d") - when 'DateTime' - return value.strftime("%Y-%m-%dT%H:%M:%S") - when 'Time' - return value.strftime("%H:%M:%S") - when 'Fixnum' - return value.to_i - end - return value + def prepare_value(type, value) + value = super(type, value) + return value unless value + case type.name + when 'String' + return value.to_s + when 'Date' + return value.strftime("%Y-%m-%d") + when 'DateTime' + return value.strftime("%Y-%m-%dT%H:%M:%S") + when 'Time' + return value.strftime("%H:%M:%S") + when 'Fixnum' + return value.to_i + end + return value end - def value_to_mapper(type, value) - return unless value - case type.name - when 'DateTime' - @@time_offset ||= DateTime.now.offset - return type.civil(value.year, value.month, value.day, value.hour, value.minute, value.second, @@time_offset) - when 'Date' - return type.civil(value.year, value.month, value.day) - when 'Time' - return type.local(2000, 1, 1, value.hour, value.minute, value.second) - end - return super(type, value) - end + def value_to_mapper(type, value) + return unless value + begin + case type.name + when 'DateTime' + @@time_offset ||= DateTime.now.offset + return type.civil(value.year, value.month, value.day, value.hour, value.minute, value.second, @@time_offset) + when 'Date' + return type.civil(value.year, value.month, value.day) + when 'Time' + return type.local(2000, 1, 1, value.hour, value.minute, value.second) + end + return super(type, value) + rescue + return nil + end + end - def last_insert_id - curr[:last_insert_id] - end + def last_insert_id + curr[:last_insert_id] + end ############################################################## # SQL methods # ##############################################################