Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.023 c
1-1091079593
Sancho
2004-07-29 09:39
2004.08.15
DOA 3.4.6.1 и run-time пакет


1-1091450628
sdw_syscoder
2004-08-02 16:43
2004.08.15
Компонент TProgressBar


3-1089624661
MORA
2004-07-12 13:31
2004.08.15
Структура БД


1-1091169134
seregin2
2004-07-30 10:32
2004.08.15
Как минимизироваться в панель задач?


3-1090477274
REA
2004-07-22 10:21
2004.08.15
IB designer




   Наверх