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

Вниз

Как узнать сделал-ли запрос UPDATE изменение в базе   Найти похожие ветки 

 
Dik ©   (2004-11-12 18:02) [0]

Мне нужно изменить значение в одной базе по условию (меняю через UPDATE  запрос) и если изменение прошло, провести изменение в другой базе. При этом одновременно могут эту операцию проделывать несколько клиентов, тоесть запомнить значение до изменения и проверить изменилось ли оно я не могу, потому что его может поменять ктото другой. Есть ли какая нибудь функция или свойство в IBQuery позволяющее узнать результат выполнения запроса. Помогите справиться с этой задачкой


 
Соловьев ©   (2004-11-12 18:14) [1]

try
Query.ExecSQL;
except
Rollback;
end;
Commit;


 
Dik ©   (2004-11-12 19:03) [2]

Если по условию запись не найдена то EXCEPT разве будет вызвано ?
По моему в базе просто ничего не изменится и выполнится Commit


 
Соловьев ©   (2004-11-12 19:05) [3]

Гоню :(

try
Query.ExecSQL;
Commit;
except
Rollback;
end;


 
Dik ©   (2004-11-13 01:04) [4]

Обясняю проблему точнее, есть запрос типа
IBQUery3.SQL.Add("update sklad set n=1 where n=5");
если нет записи с n=5 то никаких изменений не происходит и при
этом except не срабатывает, а мне надо знать менялось чтото или нет, при этом изменения в это время мог сделать другой клиент


 
Johnmen ©   (2004-11-13 01:14) [5]

Если что-то ты изменил RowsAffected<>0


 
Dik ©   (2004-11-13 01:43) [6]

А RowsAffected не станет <>0 при изменении другим клиентом а не моим?


 
Dik ©   (2004-11-13 01:49) [7]

И вообще у меня RowsAffected всё время -1 не зависимо от изменений, в чём причина?


 
Dik ©   (2004-11-13 02:07) [8]

Большое спасибо Евгений за подсказку, оказывается всё очень просто, а -1 потому что смотрел после Commit. Проверил работает нормально и на одну проблемку меньше :)



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

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

Наверх




Память: 0.48 MB
Время: 0.047 c
14-1100981122
Piter
2004-11-20 23:05
2004.12.12
Почему ВЫ не используете клиент?


1-1101704042
Dreamse
2004-11-29 07:54
2004.12.12
Проблема с TreeView


1-1101491736
AlexHawk
2004-11-26 20:55
2004.12.12
Как сделать титры


1-1101405558
Gero
2004-11-25 20:59
2004.12.12
Прокрутка в консоли


8-1095414104
Гость
2004-09-17 13:41
2004.12.12
GDI+. Как правильно работать с MeasureCharacterRanges