use Win32::OLE; $conn->{ConnectionString} = "..."; $conn->open; # open connection to the DB $state = $conn ->state; #1 means connected if($state ne "1"){... $mssql_select = "select DATEADD(day, DATEDIFF(day, 2, GETDATE()), '20:00:00') as ADATE"; $rs->Open( $mssql_select, $conn); my $error_collection = $conn->Errors(); my $ecount = $error_collection->Count; my ($is_message, $real_error_found); foreach my $error (in $error_collection) { #output error statements $is_message = ($error->{SQLState} eq "01000" && $error->{NativeError}==0); $real_error_found=1 unless $is_message; $status = "ERROR # " . $error->{Number} . "\n Description: " . $error->{Description} . "\nSource: " . $error->{Source} . "\n"; }