Вариант 1) использование коллекции ошибок подключения ADO.
try
....
....
....
ADOQuery1.Open;//Execute your sql statement
except
LastErrorIndex :=ADOConnection1.Errors.Count-1;
SourceError :=ADOConnection1.Errors.Item[LastErrorIndex].Source;
NumberError :=ADOConnection1.Errors.Item[LastErrorIndex].Number;
DescriptionError:=ADOConnection1.Errors.Item[LastErrorIndex].Description;
SQLStateError :=ADOConnection1.Errors.Item[LastErrorIndex].SQLState;
NativeError :=ADOConnection1.Errors.Item[LastErrorIndex].NativeError;
end;
Вариант 2)
Вы можете использовать переменную @@ error, чтобы получить последнюю ошибку с сервера sql.
select @@error
При возникновении ошибки на Sql Server вы можете получить только номер ошибки, используя глобальную переменную @@ ERROR. Не существует глобальной переменной @@ ERROR_MESSAGE для получения описания ошибки.
Чтобы получить полное сообщение об ошибке, вы можете запросить таблицу master..sysmessages, используя номер ошибки:
SELECT Description FROM master..sysmessages WHERE error= @@ERROR AND msglangid=1033
но большинство этих сообщений имеют заполнители (например,% s,% ld), вы также можете использовать эту хранимую процедуру .
Вы можете прочитать эту статью Обработка ошибок в SQL Server - фон для получения дополнительной информации.
Bye.