Вниз
Скачать: 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.021 c
14-1092315799
Digitman
2004-08-12 17:03
2004.09.05
"We all live in a yellow submarine... "(C) Beatles


14-1092240633
Сергей В. М.
2004-08-11 20:10
2004.09.05
Изменить значение переменной в другом процессе.


6-1088704608
Vladimir_v
2004-07-01 21:56
2004.09.05
Socket Error # 10054


6-1088757109
LEONardo
2004-07-02 12:31
2004.09.05
TclientSocket


8-1087143736
Karol
2004-06-13 20:22
2004.09.05
Задать движение точки по эллипсу на форме




   Наверх