Главная страница
    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.036 c
1-1090407519
ksa2002
2004-07-21 14:58
2004.08.01
Qreport


14-1089790623
ruslan
2004-07-14 11:37
2004.08.01
u menya est funksiya kak ispolzovat vipolnyat eqo


1-1090320882
Kost
2004-07-20 14:54
2004.08.01
Передача string в dll


1-1090157524
Wasya
2004-07-18 17:32
2004.08.01
RichEdit печать


14-1089881551
Юрий Зотов
2004-07-15 12:52
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский