![]() |
Модераторы: skyboy |
![]() ![]() ![]() |
|
Ibragim |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 177 Регистрация: 28.9.2004 Где: Киев Репутация: нет Всего: нет |
Вечер добрый. Вот столкнулся с таким вопросом. Есть запрос, которой в 10 записях меняет значение FREE на USED. По логике задачи мне нужно узнать, причем очень желательно сразу же в этом запросе, в каких записях была замена, то есть, проще говоря, вывести эти записи на экран. В SQL не силен, може кто чего посоветует?
|
|||
|
||||
GZep |
|
|||
![]() участник Винграда ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1528 Регистрация: 7.7.2006 Где: Москва Репутация: нет Всего: 32 |
Ibragim, по-моему можно только выполнив 2-ой запрос с select.
-------------------- ![]() ![]() |
|||
|
||||
Ibragim |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 177 Регистрация: 28.9.2004 Где: Киев Репутация: нет Всего: нет |
Понимаешь, у меня это удаленная БД (через инет с локального клиента подключаются), и если по закону бутерброда будет дисконнект между этими запросами, кардинально заглючит вся система...
Лочить таблицу нельзя по той же причине... Ладно, спасибо за ответ, буду выкручиваться |
|||
|
||||
Бонифаций |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 827 Регистрация: 15.9.2005 Где: Brisbane Репутация: 20 Всего: 40 |
значит применяй транзакционный движок (innodb) например и делай update и select в рамках одной транзакции.. Если связь оборвется где-то до коммита - транзакция откатится
-------------------- Бонифаций. |
|||
|
||||
Ibragim |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 177 Регистрация: 28.9.2004 Где: Киев Репутация: нет Всего: нет |
гм... отлично. Тока я не силен к сожалению в таких тонкостях. Движок как поменять знаю, а вот из-под Дельфи имею только возможность сделать "выполнить SQL скрипт", и где там рамки транзакций - не знаю. (использую Zeos компоненты).
Я вроде вышел из ситуации так: добавил еще одно поле, при update выставляю там флаг "операция не завершена", после показа (Select) и других операций делаю update этого флага. Так тоже конечно может быть нарушена целостность, но зато будет сразу по флагу видно что не закончено... Вот так ![]() PS Спасибо за отклики, я теперь к вам с других vingrad-форумов - у меня пару БД в проекте появилось. |
|||
|
||||
iCode |
|
||||
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 27.3.2007 Где: Томск Репутация: нет Всего: нет |
Транзакции - это не сложно, смотри:
Я так делаю на таблицах InnoDB. |
||||
|
|||||
![]() ![]() ![]() |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | MySQL | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |