Модераторы: skyboy
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проверка на удачно выполненный запрос, Нужно проверить был ли выполнен запрос 
V
    Опции темы
kvick
Дата 13.3.2012, 16:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 19.5.2011
Где: Харьков, Украина

Репутация: нет
Всего: нет



Нужно в рамках одной транзакции организовать последовательное изменение записей в таблице. Условие такое, если изменения прошли удачно, то переходим к изменению следующей записи. Хотелось бы узнать, как можно осуществить такую проверку. Читал в документации, что UPDATE возвращает количество измененных записей, но конструкция 
Код

IF ((UPDATE pacient SET pacient_id = 1000+i WHERE pacient_id = i)=1) THEN ...
 
была воспринята более чем не дружелюбно.
Что я делаю не так?))
PM MAIL   Вверх
Akina
Дата 13.3.2012, 16:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 106
Всего: 454



Путаете T-SQL с Visual Basic.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
skyboy
Дата 13.3.2012, 17:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 41
Всего: 260



Цитата(kvick @  13.3.2012,  15:17 Найти цитируемый пост)
что UPDATE возвращает количество измененных записей

что-то не то читаешь. дай ссылку, будь добр.
скорее всего, путаешь выполнение SQL запроса и запуск какой-то из API-функций с этим запросом в качестве аргумента.
PM MAIL   Вверх
kvick
Дата 13.3.2012, 18:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 19.5.2011
Где: Харьков, Украина

Репутация: нет
Всего: нет



Цитата(skyboy @ 13.3.2012,  17:23)
Цитата(kvick @  13.3.2012,  15:17 Найти цитируемый пост)
что UPDATE возвращает количество измененных записей

что-то не то читаешь. дай ссылку, будь добр.
скорее всего, путаешь выполнение SQL запроса и запуск какой-то из API-функций с этим запросом в качестве аргумента.

вот ссылка - http://www.mysql.ru/docs/man/UPDATE.html
Цитата

Команда UPDATE возвращает количество фактически измененных строк.

А если снять с рассмотрения приведённый мною код, можно ли как-то отслеживать успешность выполнения запроса?
PM MAIL   Вверх
skyboy
Дата 13.3.2012, 20:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 41
Всего: 260



ясно. ну, дока недоговаривает.
во-первых, "возвращает количество строк" — уже не запрос UPDATE, а API-шная функция mysql_query(в реализации на нужном языке программирования) при выполнении UPDATE-запроса в ней.
во-вторых, использовать сие значение в том же запросе, как ты можешь видеть, нельзя.
так что используй какой-то язык программирования.
или сделай два запроса: сначала UPDATE, потом  SELECT c ROW_COUNT
PM MAIL   Вверх
Fortop
Дата 13.3.2012, 20:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2200
Регистрация: 13.11.2007
Где: Донецк

Репутация: 4
Всего: 42



Цитата(kvick @  13.3.2012,  18:18 Найти цитируемый пост)
А если снять с рассмотрения приведённый мною код, можно ли как-то отслеживать успешность выполнения запроса? 

Что значит успешность выполнения запроса для вас?

Что он выполнен? Или что данные присвоены именно той записи которой надо?
Или что-то еще?

вот вам топик на тему ACID в Mysql http://www.sql.ru/forum/actualthread.aspx?tid=808751



--------------------
Мир это Я.
Живее всех живых.
PM MAIL   Вверх
kvick
Дата 13.3.2012, 21:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 19.5.2011
Где: Харьков, Украина

Репутация: нет
Всего: нет



Решил проблему, зайдя с другой стороны. Используя переменную @@error_count, а точнее проверяя, что её значение больше 0, анализирую, был ли удачен запрос. Спасибо всем, кто пытался помочь))
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MySQL | Следующая тема »


 




[ Время генерации скрипта: 0.0534 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.