Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.12.09;
Скачать: CL | DM;

Вниз

Как определить, есть ли запись в таблице при добавлении новой.   Найти похожие ветки 

 
tv ©   (2002-11-21 14:17) [0]

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


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

???


 
tv ©   (2002-11-21 14:26) [2]

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


 
tv ©   (2002-11-21 14:29) [3]

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


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

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


 
Prooksius ©   (2002-11-21 14:37) [5]

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


 
Lord Warlock ©   (2002-11-21 14:39) [6]

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

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


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

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


 
NickBat ©   (2002-11-21 14:41) [7]

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


 
Jeer ©   (2002-11-21 14:53) [8]

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

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


 
NickBat ©   (2002-11-21 15:02) [9]

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


 
RomanB ©   (2002-11-21 15:36) [10]

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


 
Jeer ©   (2002-11-21 17:21) [11]

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


 
tv ©   (2002-11-21 18:54) [12]

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

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


 
tv ©   (2002-11-21 18:57) [13]

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


 
sniknik ©   (2002-11-21 20:05) [14]

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



Страницы: 1 вся ветка

Текущий архив: 2002.12.09;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.022 c
1-27949
AlexKr
2002-11-29 12:12
2002.12.09
Перенаправить вывод


1-27954
normal
2002-11-29 13:43
2002.12.09
Как получить вчерашнюю дату ?


14-28262
Andrey22
2002-11-18 14:13
2002.12.09
Gde vzjat DELPHI samu programmu????


1-28056
vaneks
2002-11-27 21:30
2002.12.09
Файлы... Они есть?


1-27963
Azerg
2002-11-29 13:50
2002.12.09
Программа не завершается при выходе из Виндов