Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как узнать сделал-ли запрос UPDATE изменение в базе [D7, IB6.x]


Dik ©   (2004-11-12 18:02:00) 

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


Dik   (2004-11-13 02:07:00) [1]

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


Dik   (2004-11-13 01:49:00) [2]

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


Dik   (2004-11-13 01:43:00) [3]

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


Johnmen   (2004-11-13 01:14:00) [4]

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


Dik   (2004-11-13 01:04:00) [5]

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


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

Гоню :(

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


Dik   (2004-11-12 19:03:00) [7]

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


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

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


Наверх

Титульная страница Поиск, карта сайта Написать письмо