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

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

Правила добавления записей в БД [D6, IB6.x, FireBird]


galexis ©   (2003-04-14 15:43:00) 

Уважаемые мастера! Помогите с таким вопросом: заношу в БД записи из файла XML. В таблице есть поле по которому построен PRIMARY KEY. Т.е. если запись с таким уникальным ключом уже есть, то при добавлении получаем ошибку. Как правильно написать запрос, что если записи нет то добавить, если есть, то изменить.


Жук   (2003-04-14 16:19:00) [1]

Я бы триггер написал, скорее всего.


Жук   (2003-04-14 16:17:00) [2]

1) ХП
2) В программе
Надо посмотреть, что быстрее будет работать...


Соловьев   (2003-04-14 16:15:00) [3]

ХП:
где проверяем что если есть - то апдейтим
есле нет - добавляем.


galexis   (2003-04-14 16:10:00) [4]

Так я и написал, и тоже думаю что это изврат.
А как правильно-то надо?


Жук   (2003-04-14 16:01:00) [5]

Можно проверить и инсертом :
MyQuery.SQL.Add("insert ...");
try
MyQuery.ExecSQL;
exception
if E.Exception=...
then делаем update
end;

ИМХО - це изврат.


galexis   (2003-04-14 15:53:00) [6]

А как быть? Ну пусть не одним. Раньше, для локальных БД, я сначала проверял наличие данной записи в БД, а потом в зависимости от результата добавлял или изменял. Здесь, что также надо?


Жук   (2003-04-14 15:48:00) [7]

Одним запросом не получится.


Наверх

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