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

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

Повтор вопроса - как выполнить запросы без ошибок? [D7, MySQL]


nkrainev ©   (2003-02-14 22:05:00) 

Исходные данные:

Delphi 7. MySQL. Zeos (компоненты для доступа к БД)

Описание проблемы:

Необходимо выполнить ряд запросов к БД. Запросы - вставки записей INSERT. Имеются уникальные поля и если я пытаюсь вставить запись, которая уже в таблице есть, Дельфи выдает ошибку. Ее обработать мне удалось, но не удалось заставить TZBatchSQL выполнить все остальные запросы. Т.е. как только этот компонент находит ошибочный запрос, он сразу завершает все действия. Это грустно.

Вопросы:

Возможно ли все-таки выполнить все запросы, а ошибочные, допустим, посчитать (но это, впринципе, не так важно)? Или придется выполнять запросы по одному ( ОЧЕНЬнеудобно)?

____________
Спасибо за внимание,
Николай


PrettyFly   (2003-02-15 15:58:00) [1]

IF not QuerySuper.Locate(FieldName,Value,[]) Then
QuerySuper.Insert...


jocko   (2003-02-15 15:44:00) [2]

На мой взгляд надо просто пересмотреть алгоритм, если ты на клиенте построчно перебираешь набор данных и вставляешь по записи, то это неэффективно...
Кроме того, зачем вставлять записи которые есть?
Сделай выборку только тех которых нет + необходимые условия, что-нибудь вроде

INSERT INTO SomeTable_1
SELECT SomeField
FROM SomeTable_2
WHERE SomeField not in (SELECT SomeField
FROM SomeTable_1 )
AND SomeField > ...или еще что


happyboy   (2003-02-15 15:38:00) [3]

Try
Запрос.
Except
Что делать, если запрос ошибочный.
End;


Наверх

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