Oho! Here is a clue. I removed odbc_cursortype => 2
from the DBI->connect attributes. Now the error is trapped! The output was: handle_error: $state is "42000". handle_error: $msg is "[Microsoft][ODBC SQL Server Driver][SQL Server]An error was raised. Input was "Some input parameter".". handle_error: $native is "50000". After execute: $retval is "55". After execute: $p1 is "Some input parameter". After execute: $p2 is "75". Done. Now I wonder a) why I put odbc_cursortype=>2 in there in the first place (I've been doing that for years), and b) why that breaks things. -- Eric