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

Вниз

Проверка записи на уникальность   Найти похожие ветки 

 
Ata133 ©   (2004-06-23 16:52) [0]

Моя программа автоматически "разбирает" строки и заносит в простенькую БД (1 таблица) записи. Как мне на этом этапе занесения проверить - есть ли уже такая запись в таблица или нет. При утвердительном ответе - не заносить, ну а если еще нету такой записи, то - занести! :).


 
Anatoly Podgoretsky ©   (2004-06-23 16:54) [1]

Locate


 
Соловьев ©   (2004-06-23 16:56) [2]

создать уникальный индекс по полю и обрабатывать исключение.
Но если у тебя однопользовательская прога - то можешь запрос выполнить
select count(*) as cnt_xxx from table where field=xxx
и если он возвратит 0, то не вносить.


 
Mim1 ©   (2004-06-23 21:26) [3]

Вноси все подряд, потом distinct"ом выбереш и скопируеш в другую таблицу.


 
Наталия ©   (2004-06-24 06:55) [4]

>Mim1 ©   (23.06.04 21:26) [3]
Фу...


 
Mim1 ©   (2004-06-24 08:53) [5]


> [4] Наталия ©   (24.06.04 06:55)
> >Mim1 ©   (23.06.04 21:26) [3]
> Фу...

Бррр...


 
inic   (2004-06-24 10:46) [6]

В MS SQL Server работает:
if not exists (select f1 from tb where f1=11100)
insert into tb (f1, f2) values (11100, "fqwfqw")

Попробуй в Paradox


 
Ata133 ©   (2004-06-24 12:17) [7]

Спасибо всем. Distinct"ом пробовал изначально. Из-за этого-то проблема и возникла. Все равно бывает по 10 (абсолютно!) одинаковых записей. Заношу я посредством Post, или все-таки Insert"ом советуете?


 
Курдль ©   (2004-06-24 12:54) [8]


> Заношу я посредством Post, или все-таки Insert"ом советуете?

А Delet-ом не пробовали?


 
Ata133 ©   (2004-07-08 15:59) [9]

Дело в том, что надо не по одному полю делать отбор, а совпадение искать аж по 8 полям. Я делаю, как посоветовали выше:
If Not (tCargo.Locate("From_;To_;DateF;...",VarArrayOf([z.From_,z.To_,z.DateF, z.DateT, ...]),[])) Then ... ;
Первый аргумент - сравниваемые поля БД, второй - массив сформированных строк для будущего добавления (z - запись со структурой, аналогичной таблице БД). После Then, по идее, - занесение записи в таблицу. Теоретически правильно?

А вот на деле заносятся все записи. Такое впечатление, что неправильно воспринимаются русские символы (хотя может массив неправильно формируется или зведы не так расположены, или еще какая причина неизвестная), т.к. когда я попробывал сделать
If Not (tCargo.Locate("DateF",z.DateF,[])) Then ... ;
были занесены только неповторные записи. Как Вы уже, наверное, догадались, это поле имело тип Date. То же самое происходит по полям целого типа.

* Драйвер Ansi Cyrillic.



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

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

Наверх




Память: 0.46 MB
Время: 0.037 c
1-1090359562
НовиЧок
2004-07-21 01:39
2004.08.01
Сохранение RichEdit


3-1088852539
3APA3A
2004-07-03 15:02
2004.08.01
получить результат ХП


6-1086249505
AnatolyP
2004-06-03 11:58
2004.08.01
Клиент-серверное приложение с поддержкой БД


4-1087728768
Шалунишка
2004-06-20 14:52
2004.08.01
Центр экрана!!!


1-1089986876
Dima_Delphi
2004-07-16 18:07
2004.08.01
Как создать круглую кнопку в делфи???





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский