Имя: Пароль:
IT
Админ
ADODB.Connection. Апдейт несуществующей записи.
0 Rounder
 
30.09.13
11:26
Через ADODB.Connection соединяюсь с DBF. Пишу запрос на апдейт записи, ввожу несуществующий ключ записи - запрос выполняется без всплесков, ошибок не выдает. Как кроме запроса на проверку есть ли такая запись проверить успешно завершился запрос или нет?
1 Rounder
 
30.09.13
11:46
Актуально
2 ДенисЧ
 
30.09.13
11:49
А тут ошибки никакой и не должно быть...
3 Rounder
 
30.09.13
11:49
Ну всплеск то должен какой-то быть? Или я не прав?
Это не только апдейт - это например удаление несуществующей записи и прочее.
4 ДенисЧ
 
30.09.13
11:51
(3) ты не прав.
5 Rounder
 
30.09.13
11:51
Т.е. кроме как сначала запросом проверить если запись а потом проводить действия других вариантов нету?
6 Rounder
 
30.09.13
11:52
нужно отлучиться - вернусь прочту
7 ДенисЧ
 
30.09.13
11:52
(5) Угу.
Правда, на mysql есть update_or_insert... :-)
8 Rounder
 
30.09.13
12:34
(7) В SQLServer2005 полагаю подобного нету?
10 Зойч
 
30.09.13
12:38
(5) с дбфом только так
11 Rounder
 
30.09.13
12:40
Эх. Спасибо всем отозвавшимся.
12 Rounder
 
30.09.13
13:28
Продолжаю поиск. Читаю спецификацию ADO.
Нашел и попробовал RecordsAffected в Execute(CommandText, RecordsAffected, Options)

RecordsAffected - необязательный. Целое число (long), определяющее число записей, затронутых командой. Заполняется провайдером.

В итоге когда апдейт несуществующей записи то RecordsAffected возвращает 0 иначе 1. Тоже самое и при удалении - если удаляю уже удаленную или несуществующую, то 0 иначе 1.

Какие видны минусы использования этого механизма?
13 Rounder
 
30.09.13
13:32
Прошу модератора перенести тему в ветку v8.
14 Живой Ископаемый
 
30.09.13
13:46
почему про в8?
15 Rounder
 
30.09.13
13:59
Ну хотя бы потому что она имеет отношение конкретно к использованию в рамках 1С. И мне кажется ее нахождение в ветке ИТ совсем неуместно (посмотрел на остальные темы этого раздела).
16 Живой Ископаемый
 
30.09.13
14:02
а мне кажется что оно в в8 совсем неуместно, потому что не имеет отношение к в8, а имеет отношение к вполне конкретному АПИ