Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Исключения в БД 
:(
    Опции темы
spawn1984
  Дата 26.2.2005, 11:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 25.2.2005

Репутация: нет
Всего: нет



Кто-нибудь знает как поймать исключение при добовлении записи в БД. У меня в БД добовление записи идет через компонент DBTable...подскажите, очень надо...
PM MAIL ICQ   Вверх
Vit
Дата 27.2.2005, 07:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

Репутация: 14
Всего: 207



Цитата(spawn1984 @ 26.2.2005, 02:45)
компонент DBTable...



А что это за компонент такой?


--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
spawn1984
Дата 28.2.2005, 08:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 25.2.2005

Репутация: нет
Всего: нет



Он находиться на вкладке BDE...у меня с таблицей access связь идет через него
PM MAIL ICQ   Вверх
Cetus
Дата 28.2.2005, 13:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 141
Регистрация: 18.4.2004

Репутация: нет
Всего: 1



try
Table1Field1.asString := 'asd';
или
Table1.Fields.FieldByName['ads'].AsString := 'asd';
except on e: exception do begin
// возникло исключение
e.MEssage := 'глюк в БД';
raise
end end;


а вообще почитай лучше доки по исключениям smile
--------------------
Легко внести изменения в код.Трудно сделать это корректно.
PM MAIL   Вверх
bursa
Дата 28.2.2005, 16:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 98
Регистрация: 25.2.2005
Где: Липецк

Репутация: 1
Всего: 1



Table1-OnPostError используй


чтото типа такого
procedure TForm3.Table1PostError(DataSet: TDataSet; E: EDatabaseError;
var Action: TDataAction);
begin
Table1.Cancel;
Table1.Refresh;
end;


или такое


procedure TForm3.Table1DeleteError(DataSet: TDataSet; E: EDatabaseError;
var Action: TDataAction);
begin
MessageBox(0,'что то такое',nil,mb_Ok+MB_SYSTEMMODAL);
Table1.Refresh;
end;

PM MAIL   Вверх
spawn1984
Дата 1.3.2005, 08:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 25.2.2005

Репутация: нет
Всего: нет



Еще один вопросик, может кто-нибудь знает на него ответ...смотрел в хелпе по делфи, ничего стоящего там не нашел...
есть две формы, на одной находиться сама база-главная таблица(просмотр)(соединение через ADO), на второй вводяться данные в базу которая находиться на форме 1(соединение через ADO), ввод происходит через DBLookupComboBox1 при выборе из списка какой либо записи, должно происходить или ввод, или исключение если запись существует,возможно ли сделать исключение на выбор записи из списка..
PM MAIL ICQ   Вверх
Dimich
Дата 1.3.2005, 08:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 247
Регистрация: 25.8.2004
Где: Брянск

Репутация: 3
Всего: 7



Насколько мне известно, исключение должно генерироваться при добавлении уже существующей записи в БД. Есть 2 варианта:
1. Перед insertом проверять selectoм существование записи. Недостаток: для многопользовательской БД не подходит.
2. Создать в таблице уникальный индекс по полям, которые не допускают повторения и в этом случае обрабатывать исключения в программе при выполнении Insertа при помощи конструкций дельфи хоть как try...except.

З.Ы. Ответ относится к первому вопросу. На будущее, пожалуйста, создавай для нового вопроса новую тему.

Это сообщение отредактировал(а) Dimich - 1.3.2005, 08:50
--------------------
Не работает - исправь, работает - не трогай!!!
PM MAIL ICQ Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.0520 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.