Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2002.12.09;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.007 c
4-28338
Radiy
2002-10-15 08:31
2002.12.09
Автоматический запуск программы


3-27822
Tundra
2002-11-18 14:11
2002.12.09
Как в ADO связать данные из различных баз даных


14-28239
SPeller
2002-11-16 13:23
2002.12.09
О форуме... по WinApi


1-28074
alvin
2002-11-28 07:28
2002.12.09
Файлы ресурсов


14-28267
VEG
2002-11-18 20:47
2002.12.09
Наш любимый чат...





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский