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

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

SQL [D5, Paradox, ]


Сашка ©   (2001-12-20 20:11:00) 

Добавляю в БД новую запись. Так вот мне нужно проверить: если она уже внесена в таблицу, то не вносить её. Как мне лучше всего это сделать?


Boo   (2001-12-20 23:46:00) [1]

А я ведь знал, знал...


SergVlad   (2001-12-20 23:35:00) [2]

> Boo
Не морочай людям голову индексами подобными триггерам.
Вопрос по Парадоксу был.
Но кое в чем ты прав.
Использование ответа Подгорецкого - источник сбоев при многопользовательской работе.
За время между "SELECT.." и скажем "UPDATE.." другой пользователь может
добавить аналогичную запись.
Поэтому более правильным является использование уникального индекса
по нужным полям и отлавливание exception.


Boo   (2001-12-20 22:03:00) [3]

> panov
в SQL-серваке (в частности MSSQL) - триггеры, или нечто подобное (индексы), а то вдруг в проге надо делать море запросов с такими ограничениями...


panov   (2001-12-20 21:38:00) [4]

Что значит "на уровне базы" ?


Boo   (2001-12-20 21:32:00) [5]

>panov
Я в курсе, что исчерпывающий ответ (для клиента), а вот всетаки на уровне базы моно что-нибудь сделать?


panov   (2001-12-20 21:31:00) [6]

>Boo © (20.12.01 21:01)
>Сашка (20.12.01 21:20)
Анатолий Подгорецкий дал вполне исчерпывающий ответ.


Boo   (2001-12-20 21:30:00) [7]

>Сашка
А вот в ентом почом врядли смогу (юзаю MSSQL), но может моно использовать уникальный ключ (индекс), содержащий ВСЕ поля таблицы...
А может я и глупость сморозил...


Сашка   (2001-12-20 21:20:00) [8]

>Boo
Да, ты прав.


Boo   (2001-12-20 21:01:00) [9]

>Anatoly Podgoretsky
XXX - енто было круто :-)
только я вот думаю, чеку надо было енто на уровне базы

>Сашка
или я не прав?


Anatoly Podgoretsky   (2001-12-20 20:54:00) [10]

С помощью функции
SELECT Count(*) From xxx where условие


Наверх

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