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

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

Как определить, есть ли запись в таблице при добавлении новой. [D6, MS Access]


tv ©   (2002-11-21 14:17:00) 

У меня есть база MS Access. Связываюсь с ней в Delphi через ADO (драйвер MS Jet 4). я добавляю новую запись в таблицу. Подскажите пожалуйста, как определить, есть ли уже эта запись в таблице.


sniknik   (2002-11-21 20:05:00) [1]

будете смеятся но в Access работает такой инсерт
INSERT INTO FLAGOUT (INCREM) SELECT TOP 1 6 FROM FLAGOUT WHERE 6 NOT IN (SELECT INCREM FROM FLAGOUT)
(что чему присваивается думаю понятно)


tv   (2002-11-21 18:57:00) [2]

2Jeer: Работа у меня именно однопользовательская.


tv   (2002-11-21 18:54:00) [3]

2 NickBat: Спасибо. У меня именно эта ситуация.

2 Lord Warlock: я использую не таблицу (TADOTable) a TADODataSet.


Jeer   (2002-11-21 17:21:00) [4]

И какая еще ХП для Access


RomanB   (2002-11-21 15:36:00) [5]

Между прочим индекс может содержать несколько полей, даже уникальный (иначе, какой толк от индексов?). Так что: вставляешь, если уже есть, то поругает!!!


NickBat   (2002-11-21 15:02:00) [6]

Мое мнение - он делает правильно. Другое дело, что запрос на количество и на вставку надо поместить в одну ХП.


Jeer   (2002-11-21 14:53:00) [7]

>NickBat © (21.11.02 14:41)
> tv.
>Ты делаешь правильно. Уникальный индекс не поможет, если тебе >нужна таблица без повторов по нескольким полям.

Он делает правильно для случая однопользовательской работы.


NickBat   (2002-11-21 14:41:00) [8]

> tv.
Ты делаешь правильно. Уникальный индекс не поможет, если тебе нужна таблица без повторов по нескольким полям.


Lord Warlock   (2002-11-21 14:39:00) [9]

Гм, а метод таблицы RecordCount не устраивает??
что-то типа:

if Table.RecordCount=0 then
begin
Table.Append;
...
Table.Post
end;


Если не устроит то можно использовать в условии Bof и Eof

ЗЫ Детский сад блин!


Prooksius   (2002-11-21 14:37:00) [10]

В смысле, ты не хочешь, чтобы были дубликаты?
Поставь уникальный индекс на нужное поле. Будет ругань при вставке дубликата.
Можно отдельным запросом проверять, есть ли запись.


tv   (2002-11-21 14:30:00) [11]

можно ли это сделать менее коряво?


tv   (2002-11-21 14:29:00) [12]

я делаю так: создаю запрос. если он возвращает ноль записей - добавляю в таблицу новую.


tv   (2002-11-21 14:26:00) [13]

2kostya: как из делфи определить есть ли запись в таблице. если ее нет, то добавить.


kostya   (2002-11-21 14:22:00) [14]

???


Наверх

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