Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.48 MB
Время: 0.013 c
1-28006
TTCustomDelphiMaster
2002-11-29 21:18
2002.12.09
Форма - поток, поток - форма. Запутался совсем.


7-28323
brestmarket
2002-09-28 13:08
2002.12.09
Киньте пожалуйста таблицу возвращаемых кодов клавиатуры.


1-27955
Alexander Vasjuk
2002-11-29 12:38
2002.12.09
Отображение связанных данных


1-28106
avsh
2002-11-28 13:25
2002.12.09
Почему не работает процедура SetLength


1-28023
avsh
2002-11-27 19:24
2002.12.09
Динамические массивы




   Наверх