Форум: "Базы";
Текущий архив: 2004.12.12;
Скачать: [xml.tar.bz2];
ВнизКак узнать сделал-ли запрос 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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.035 c