Форум: "Базы";
Текущий архив: 2004.09.05;
Скачать: [xml.tar.bz2];
ВнизКак проверить существует ли заданная запись в базе? Найти похожие ветки
← →
Руслан (2004-08-12 15:09) [0]Есть база MS Acces , во втором столбце хранятся уникальные записи типа O48424490308041645. Как проверить перед добавлением следующей записи не существует ли уже такая же? Надо просто знать да или нет...
← →
Sergey13 © (2004-08-12 15:12) [1]Вставляй не думая. Если есть такая лови исключение.
← →
Ega23 © (2004-08-12 15:13) [2]Exists ?
← →
Руслан (2004-08-12 15:15) [3]>Ega23 © (12.08.04 15:13) [2]
>Exists ?
А подробнее можно?
← →
Sergey13 © (2004-08-12 15:17) [4]2Руслан (12.08.04 15:09)
Как у тебя новое значение формируется?
← →
Ega23 © (2004-08-12 15:18) [5]А подробнее можно?
Не знаком с диалектом Access, но наверняка что-то подобное должно быть.
← →
Руслан (2004-08-12 15:20) [6]Новое значение поступает извне в виде строки. И перед тем как добавлять в базу надо проверить - может вчера уже добавляли....
← →
Sergey13 © (2004-08-12 15:25) [7]2[6] Руслан (12.08.04 15:20)
Какова вероятность повтора? Если не очень велика, то дешевле и производительнее ловить исключение, чем лопатить все каждый раз.
← →
Руслан (2004-08-12 15:27) [8]К сожалению вероятность велика...очень. Но база не большая <2000 записей
← →
Sergey13 © (2004-08-12 15:29) [9]select count(*) count_cod from table
where cod=:cod
Если count_cod=0 вставляй.
← →
Руслан (2004-08-12 15:39) [10]Спасибо! Попробую
← →
Sergey13 © (2004-08-12 15:43) [11]Попробуй, но исключение, ИМХО, лучше. Тем более, как я понял, если уже есть то надо просто не вставлять. При вставке все равно будет эта проверка.
← →
сергей1 (2004-08-12 16:28) [12]тебе верно советуют, используй исключение, если работаешь с ADOQuery пиши обработчик на ADOQuery1PostError, там в параметре E содержится вся инфа об ошибке, для отмены действия есть специальный оператор abort.
зачем велосипед изобретать, все продумано задолго до нас !
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2004.09.05;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.033 c