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

Вниз

Поиск в таблице   Найти похожие ветки 

 
JB   (2004-06-18 08:35) [0]

Проблема вот в чем, пользователь пытается добавить запись в таблицу, но при этом если такая запись уже существует, добавление необходимо игнопировать.


 
Наталия ©   (2004-06-18 08:57) [1]

И в чем проблема?
Проверить, если такая запись уже есть, то не добавлять новую?


 
Sergey13 ©   (2004-06-18 09:19) [2]

2JB   (18.06.04 08:35)  
Самое простое и универсальное решение - уникальный индекс на нужное поле + реакция в программе на исключительную ситуацию. На кодовые поля лучше ставить автоинкременты, что вообще исключает повтор. А вот на поля, заполняемые юзером (типа наименование фирмы) универсальных решений нет - только ручками.


 
sniknik ©   (2004-06-18 10:39) [3]

> И в чем проблема?
как в чем? готового кода нигде нет и компонента тоже.

Sergey13 ©   (18.06.04 09:19) [2]
с исключительными ситуациями это очень долго получится, особенно после того как таблица заполнится почти полностью всеми имеюшимися значениями. гораздо быстрее предварительный поиск значения, по индексу естественно, благо аксесс это позволяет (функция Seek), нашол дальше нет добавляеш.


 
Sergey13 ©   (2004-06-18 10:52) [4]

2sniknik ©   (18.06.04 10:39) [3]
>с исключительными ситуациями это очень долго получится...
Почему? При фиксации записи, ИМХО, произойдет именно то что ты описал - поиск по индексу и облом при нахождении. Только поиск этот будет на уровне БД(движка), а не приложения.
И потом если искать каждый раз при внесении новой записи, то получится мартышкин труд для 99% случаев, если конечно не предполагать что юзер упорно вводит только то, что уже есть.


 
sniknik ©   (2004-06-18 11:34) [5]

Sergey13 ©   (18.06.04 10:52) [4]
ну может быть, спорить не буду, тестить неохота.

> И потом если искать каждый раз при внесении новой записи, то получится мартышкин труд для 99% случаев, если конечно не предполагать что
> юзер упорно вводит только то, что уже есть.
от задачи зависит. например у меня именно так и получается, идет передача данных добавление/изменение даннные с офиса обновляют данные на местах и единственно возможный путь посылать все даже если в накладной поправлено 1 значение. (может в массе на местах уже все это есть и достаточно 1 записи, но посылается всем т.к. когото может этой накладной не быть совсем. да и просто для гарантий посылают повторы (т.е. в 99% лопатятся именно имеющиеся уже данные), да хотя посылается накладная в базе хранятся товары,  получается после какогото периода (база наполнилась) добавлений нет совсем, только редактирование)
когда это реализовавал, выбрал самое быстрое что тогда нашол (с поиском). сейчас не буду переделывать даже если с исключениями будет быстрее (в чем сомневаюсь)


 
Sergey13 ©   (2004-06-18 11:44) [6]

2sniknik ©   (18.06.04 11:34) [5]
Ты описал, ИМХО, абсолютно другой случай. У автора ручной ввод, а у тебя, как я понял, самописная репликация. Естественно там другие подходы вообще.

>сейчас не буду переделывать даже если с исключениями будет быстрее (в чем сомневаюсь)
Поддерживаю. Если работает - лучше не трогать. 8-)



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

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

Наверх




Память: 0.48 MB
Время: 0.033 c
1-1089203729
ZiRoCool
2004-07-07 16:35
2004.07.18
Абсолютно тупой вопрос, но всё же :)


6-1085394114
ilnarab
2004-05-24 14:21
2004.07.18
Копирование файлов


1-1088962595
TUser
2004-07-04 21:36
2004.07.18
PAnsiChar и GetShortPathName


14-1088648813
Думкин
2004-07-01 06:26
2004.07.18
С днем рождения! 1 июля


1-1088607689
mmb
2004-06-30 19:01
2004.07.18
Как заставить PaintBox при скроллинге очищаться полностью