Вниз
Скачать: 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.026 c
1-1090772137
parovoZZ
2004-07-25 20:15
2004.08.15
Открытие файла


1-1091104874
Makks
2004-07-29 16:41
2004.08.15
Подскажите алгоритм 30-и дневневного использования программы...


3-1090516073
Wolfram
2004-07-22 21:07
2004.08.15
Изменение свойств memo в FastReport в runtime


8-1084093956
dimon_programmer
2004-05-09 13:12
2004.08.15
Как правильно менять увеличивать резкость изображения


1-1091090486
СтёпКин
2004-07-29 12:41
2004.08.15
DirectX SDK




   Наверх