• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

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

    Запись на курс до 25 апреля. Получить промодоступ ...

Как проверить наличие записи в таблице?

  • Автор темы Guest_Egor
  • Дата начала
Статус
Закрыто для дальнейших ответов.
G

Guest_Egor

Как при вводе в таблицу новой записи проверить существует ли в таблице уже такая запись?

procedure TForm1.oxButton7Click(Sender: TObject);
begin

Table1.Insert;

end;
 
B

Barmutik

Проверять нужно по какой-то группе полей ?

Как вариант сделать Table1.Locate(...) ... если запись нашлась значит она есть :)
 
G

Guest_Egor

Требуется проверять существование записи в таблице при вводе новой.
В таблице 3 поля, но хотя бы проверить по одному полю, чтобы выводилось сообщение о том, что такая запись есть или чтобы эта запись появлялась в таблице.
 
B

Barmutik

Это на уровне приложения надо сделать ? Или на уровне базы данных ?

Если на уровне приложения то:

Код:
if not Table1.Locate('Filed1', FieldValue, []) then
Table1.Insert

Если на уровне базы данных то:

Делается индекс с уникальными значениями по этому полю и всё. База сам не даст вставить поле с повторяющимися значениями.
 
B

Btr

Locate довольно долгий процесс на больших данных
Лучше пользоваться дополнительным TQuery, или GotoNearest кажись была такая функция у Тайбла, но только на индексированое поле открытое по этому индексу
 
B

Barmutik

Не совсем понятно к чему здесь использование функции GotoNearest... у неё совсем другое предназначение...

А насчёт дополнительного TQuery... это варинат явно быстрее .. но надо делатьз апрос к базе .. уже лучше тогда на уровне базы проверять и не давать просто вставить запись...
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!