Главная страница
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.021 c
3-27810
Sergey-ZZZ
2002-11-22 12:23
2002.12.09
SQL


14-28266
Шишкин Илья
2002-11-14 20:23
2002.12.09
Помогите с Физикой


14-28208
delpher_gray
2002-11-13 14:45
2002.12.09
Всем кто занимается заподлостроением (пишет вирусы, трояны и т.п)


3-27902
Julia
2002-11-20 11:13
2002.12.09
BDE и MS SQL Server 2000


4-28328
serd_hhc
2002-10-26 06:38
2002.12.09
Как узнать под какой учётной записью запущено окно?