Приветствую Вас Гость | RSS

Меню сайта

Реклама

Категории раздела
ADO [17]
ASCII и CSV [12]
Access [20]
Alias [24]
BDE [37]
BLOB поля [19]
Clipper [2]
DB2 [2]
DBASE и DBF [26]
Fox Pro [1]
Interbase [21]
MSSQL [0]
ODBC [10]
Oracle [0]
Paradox [0]
SQL [29]
Sybase [1]
База данных [0]
Закладки [2]
Записи [0]
Индексы [10]
Компоненты и Базы данных [0]
Модуль данных [3]
Отчеты [2]
Ошибки БД [17]
Поиск [16]
Поля [0]
Сортировка и Фильтр [6]
Таблицы [0]

Наш опрос
Оцените мой сайт
Всего ответов: 30

Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0

Форма входа

Главная » Статьи » Базы данных » Ошибки БД

Как поймать свой RAISEERROR в Delphi
procedure TFDMUtils.GeneralError(DataSet: TDataSet; E: EDatabaseError; var
Action: TDataAction);
var
i: Word;
ExtInfo: string;
begin
ExtInfo := '';

if (E is EDBEngineError) then
begin
if (EDBEngineError(E).Errors[0].NativeError = 0) then
begin // Local Error
if EDBEngineError(E).Errors[0].Errorcode = 9732 then
ExtInfo := DataSet.FieldByName(trim(copy(E.Message, 29,
20))).DisplayLabel;
.......................................
end
else
begin
// Remote SQL Server error
ExtInfo := ExtractFieldLabels(DataSet, E.Message);
case EDBEngineError(E).Errors[0].NativeError of
233, 515:
Alert('Ошибка', 'Hе все поля заполнены ! ' + ExtInfo);
547:
if (StrPos(PChar(E.Message), PChar('DELETE')) <> nil) then
Alert('Ошибка пpи удалении',
'Имеются подчиненные записи, удаление (изменение) невозможно! ' +
ExtInfo)
else if (StrPos(PChar(E.Message), PChar('INSERT')) <> nil) then
Alert('Ошибка пpи вставке', 'Отсутствует запись в МАСТЕР-таблице! '
+ ExtInfo)
else if (StrPos(PChar(E.Message), PChar('UPDATE')) <> nil) then
Alert('Ошибка пpи обновлении',
'Отсутствует запись в МАСТЕР-таблице! ' + ExtInfo);
2601:
Alert('Ошибка', 'Такая запись уже есть!');
else
Alert('Ошибка', 'Hеизвестная ошибка, код - ' +
inttostr(EDBEngineError(E).Errors[0].NativeError) + ExtInfo);
end;
end;
end;
end;

Этот код был заточен под MSSQL, но не нужно пытаться его использовать, а лучше по этому пpимеpу написать свою процедуру.

Категория: Ошибки БД | Добавил: Skinner (07.07.2008)
Просмотров: 336 | Рейтинг: 0.0/0
  Delphi Lab   Главная   Регистрация   Вход  
Интересная Цитата

Поиск

Магазин


Copyright MyCorp © 2025 Хостинг от uCoz