Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How get the error of ActiveRecord::Base.connection.execute?

  begin

    ActiveRecord::Base.transaction do

      // ...
      sanitized_sql = "INSERT INTO pinfo ..."
      ActiveRecord::Base.connection.execute(sanitized_sql)

    end

  rescue

    // how can I get the error?       

  end

In the webrick console, the error (1967-07-16?00:00:00) is shown as:

EXECUTE (0.0ms) ODBC::Error: 22008 (241) [unixODBC][FreeTDS][SQL Server]Syntax error converting datetime from character string.: INSERT INTO pinfo (birthdate) VALUES ('1967-07-16?00:00:00') EXECUTE (0.8ms) IF @@TRANCOUNT > 0 ROLLBACK TRANSACTION

How can I get the above error message (ODBC::Error: 22008 (241) ...) raised from ActiveRecord::Base.connection.execute in rescue?

like image 235
ohho Avatar asked Aug 13 '13 04:08

ohho


1 Answers

 begin  
  ActiveRecord::Base.transaction do  

  // ...
  sanitized_sql = "INSERT INTO pinfo ..."
  ActiveRecord::Base.connection.execute(sanitized_sql)

  end
 rescue Exception => exc 
   logger.error("Message for the log file #{exc.message}") 
   flash[:notice] = "Store error message #{exec.message}" 
 end

Thanks

like image 192
Rajarshi Das Avatar answered Oct 07 '22 00:10

Rajarshi Das