Вниз
Скачать: CL | DM;

Как проверить существует ли заданная запись в базе?   Найти похожие ветки 

← →
Руслан   (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 вся ветка

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



Память: 0.47 MB
Время: 0.023 c
1-1092916718
han-bratan
2004-08-19 15:58
2004.09.05
как добавить пункт меню из DLL ?


1-1092774753
Quest
2004-08-18 00:32
2004.09.05
зависает поток


14-1092463001
KSergey
2004-08-14 09:56
2004.09.05
Про местный чат


8-1087015047
dimon_programmer
2004-06-12 08:37
2004.09.05
Аналог Scanline в C++


14-1092419654
Кириешки
2004-08-13 21:54
2004.09.05
Открытие олимпиады.




   Наверх