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

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

проверка на существования записи в базе данных [D7, XP]


Juri ©   (2006-09-08 16:38:00) 

Доброго времени суток! Такой у меня вапрос:
Необходимо проверить существует ли уже запись в BDF, перед тем как её туда добавить... проверять к примеру надо по главным фельдам это: NAME, DATE, SUMME... вобщем если надо добавить строку "NAME "Петя" DATE "21.02.1964" SUMME "3000"", то нужно проверить а есть ли такая запись уже?


Juri   (2006-09-08 18:56:00) [1]

ух тяжело плин с хелпом воевать а... ну кое как разобрался сделал через Table.Locate


Juri   (2006-09-08 18:00:00) [2]


> DrPass ©   (08.09.06 16:42) [1]
> В варианте (б) есть шанс, что между проверкой и добавлением
> кто-то другой впишет туда этого Петю.

значит надо использовать вариант "а"
тогда прошу объяснить что такое уникальный индекс по главным полям как его заиметь?


DrPass   (2006-09-08 18:00:00) [3]


> Desdechado ©   (08.09.06 17:56) [4]

При "типа многопользовательской" работе с DBF-файлом это легко избежать :)


Desdechado   (2006-09-08 17:56:00) [4]

DrPass ©   (08.09.06 16:42) [1]
В варианте (б) есть шанс, что между проверкой и добавлением кто-то другой впишет туда этого Петю.

Juri   (08.09.06 17:38) [3]
F1


Juri   (2006-09-08 17:38:00) [5]

Table1.Locate();
помогите с этой функцией, что там писать внутри?


Сергей М.   (2006-09-08 16:43:00) [6]

И ?

Нужно - проверь) ..


DrPass   (2006-09-08 16:42:00) [7]

Два варианта -
а) иметь уникальный индекс по главным фель... тьфу, полям. И просто получить ошибку при добавлении новой такой же записи, корректно ее обработать и сказать пользователю "Упс!"
б) перед вставкой попробовать выбрать такую же запись (Table.Locate, Table.Lookup, или просто запрос на SELECT - по вкусу). И тоже сказать "Упс", если что.


Наверх

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