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

Вниз

Поиск записи аналогичной искомой   Найти похожие ветки 

 
Ata133 ©   (2004-07-16 16:15) [0]

Я уже писал раньше в форум, никто не отозвался (((

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

Отбор на совпадение надо делать не по одному, а искать аж по 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.


 
Jeer ©   (2004-07-16 17:54) [1]

При добавлении новой записи вычислять хэш и записывать в доп. поле Hash, предварительно выполнив поиск на аналогичный хэш.


 
Sandman25 ©   (2004-07-16 17:57) [2]

В крайнем случае создаете уникальный индекс, пытаетесь лобавить, перехватываете исключение, анализируете его текст, если это key violation, то переходите к следующей записи.



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

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

Наверх




Память: 0.47 MB
Время: 0.025 c
4-1089042434
Epifun
2004-07-05 19:47
2004.08.15
Изменения в файловой системе....


14-1091029810
DeadMeat
2004-07-28 19:50
2004.08.15
Сетка с WinXP и другими...


6-1087201621
Apocalepse
2004-06-14 12:27
2004.08.15
Передача текста. Срочно!!! Подалуйста.


9-1082996918
CraKerX
2004-04-26 20:28
2004.08.15
Интерфейс в GLscene


3-1090492217
AD_infiniTUM
2004-07-22 14:30
2004.08.15
Как правильно внести изменения в базу