Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Транзакция в TFIBdataset [D7, XP]


Страницы:   1 2

d@nger ©   (2009-10-29 07:57:00) 

Здравствуйте! Я новичек в написании программ под FireBird и сейчас решил перейти с IBX на FIBPlus ... но почему то код работающий на IBX работает не так в FIBPlus. Я добавляю в таблицу запись следующим образом :

with fmain.org_dset do
  try
   insert;
   Fieldbyname('org_id').AsInteger:=fmain.spr_org_query.FieldValues['pk'];
Fieldbyname('org_name').AsString:=fmain.spr_org_query.FieldValues['full_name'];
   Post;
   fmain.my_transaction.CommitRetaining;
 except
  messageDlg('Ошибка при добавлении записи!',mtError,[mbOk], 0);
  fmain.my_transaction.RollbackRetaining;
 end;


поле org_id имеет уникальный индекс... но при добавлении одинакового значения исключение срабатывает, но в DBGrid значение все равно отображается, хотя физически она не добавляется в таблицу. Никак не могу сделать чтобы при возникновении ошибки при добавлении дубля ошибочная строка не отображалась в гриде. Уже все опции FIBDataset пересмотрел... ничего не получается... подскажите что не так... может опцию какую нибудь не выставил..


d@nger   (2009-10-29 08:54:00) [21]


> Это PK для таблицы ORG?

нет... это идентификатор строки другой таблицы, а индекс вставляется из генератора автоматически


Sergey13   (2009-10-29 08:33:00) [22]

> [0] d@nger   (29.10.09 07:57)
> поле org_id имеет уникальный индекс...

Это PK для таблицы ORG? Тогда почему туда пишется значение из какого то справочника? Почему не из генератора?


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо