Текущее время: Вс, июл 27 2025, 19:49

Часовой пояс: UTC + 3 часа


Правила форума


ВНИМАНИЕ!

Вопросы по SAP Query и Quick View - сюда



Начать новую тему Ответить на тему  [ Сообщений: 10 ] 
Автор Сообщение
 Заголовок сообщения: Непонятности с SELECT MODIFY COMMIT ROLLBACK
СообщениеДобавлено: Пт, мар 15 2013, 11:15 
Ассистент
Ассистент

Зарегистрирован:
Ср, сен 26 2007, 14:07
Сообщения: 28
Пол: Мужской
Доброго дня!
Вот такой код, вопрос в комментах, почему sy-subrc = 0?
Code:
REPORT ZDUMMY.

DATA:
      LT_VARKEY TYPE TABLE OF ZVARIANT_KEY,
      LS_VARKEY TYPE ZVARIANT_KEY.

LS_VARKEY-VAR_KEY      = 'TEST'.
LS_VARKEY-VAR_KEY_NUMB = 'TEST'.

"Строки с таким ключом нет в таблице, поэтому она будет создаваться.
MODIFY ZVARIANT_KEY FROM LS_VARKEY.

"Мы не делали ни коммита, ни роллбэка

"Делаем селект того, что было в MODIFY

SELECT * FROM ZVARIANT_KEY INTO TABLE LT_VARKEY
  BYPASSING BUFFER "Эту штуку нашел в хелпе, но она никак не влияет.
  WHERE VAR_KEY      = 'TEST' AND
        VAR_KEY_NUMB = 'TEST'.

WRITE SY-SUBRC. "Вот тут возвращается 0! Но реально то нет строки в базе данных.
ROLLBACK WORK.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Непонятности с SELECT MODIFY COMMIT ROLLBACK
СообщениеДобавлено: Пт, мар 15 2013, 11:35 
Модератор
Модератор
Аватара пользователя

Зарегистрирован:
Пт, июн 16 2006, 00:43
Сообщения: 1686
Откуда: Москва <-> Красноярск
Пол: Мужской
__Alex__, а какая у вас СУБД? :wink:


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Непонятности с SELECT MODIFY COMMIT ROLLBACK
СообщениеДобавлено: Пт, мар 15 2013, 11:37 
Ассистент
Ассистент

Зарегистрирован:
Ср, сен 26 2007, 14:07
Сообщения: 28
Пол: Мужской
ORACLE 11.2.0.2.0


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Непонятности с SELECT MODIFY COMMIT ROLLBACK
СообщениеДобавлено: Пт, мар 15 2013, 11:37 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Пн, мар 28 2005, 15:38
Сообщения: 1257
Найдите и почитайте где-нибудь про уровни изоляции транзакции. Изменения внесенные в субд, но не закоммиченные видны в зависимости от уровня изоляции. Чаще всего в субд (оракл, мс sql) выполняется принцип "я внес - я вижу до коммита, остальные нет".

_________________
Там, где я рос, единственным развлечением было запоминать число «π».(С) Н. Стивенсон


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Непонятности с SELECT MODIFY COMMIT ROLLBACK
СообщениеДобавлено: Пт, мар 15 2013, 12:02 
Модератор
Модератор
Аватара пользователя

Зарегистрирован:
Пт, июн 16 2006, 00:43
Сообщения: 1686
Откуда: Москва <-> Красноярск
Пол: Мужской
Кодер, так не где-нибудь, а у вендора. Т.к. в разных СУБД оно по разному.

__Alex__, в целом вам уже ответили. А конкретно для вас - вот.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Непонятности с SELECT MODIFY COMMIT ROLLBACK
СообщениеДобавлено: Пт, мар 15 2013, 12:38 
Ассистент
Ассистент

Зарегистрирован:
Ср, сен 26 2007, 14:07
Сообщения: 28
Пол: Мужской
Так, вроде почему так разобрались.

Но а как сделать, чтобы считать именно актуальное состояние БД?
Пробовал использовать ФМ DB_SET_ISOLATION_LEVEL, но изменений в результате селекта никаких.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Непонятности с SELECT MODIFY COMMIT ROLLBACK
СообщениеДобавлено: Пт, мар 15 2013, 12:49 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Пн, мар 28 2005, 15:38
Сообщения: 1257
2 __Alex__: написанное Вами, говорит о том, что Вы скорее всего некорректное решение задачи пытаетесь сделать. Опишите задачу, возможно Вам подскажут ее корректное решение.
Сейчас просто непонятно: зачем вообще нужен написанный код? Зачем нужно проверять свежеизменные данные? Вы не доверяете db interface сапы?

_________________
Там, где я рос, единственным развлечением было запоминать число «π».(С) Н. Стивенсон


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Непонятности с SELECT MODIFY COMMIT ROLLBACK
СообщениеДобавлено: Пт, мар 15 2013, 13:22 
Модератор
Модератор
Аватара пользователя

Зарегистрирован:
Пт, июн 16 2006, 00:43
Сообщения: 1686
Откуда: Москва <-> Красноярск
Пол: Мужской
__Alex__, что есть по вашему "актуальное состояние БД"?
Вам теорию нужно изучать. И вопросы отпадут сами собой.

З.Ы.: Для ORACLE DB_SET_ISOLATION_LEVEL лишен смысла. ORACLE DR не умеет.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Непонятности с SELECT MODIFY COMMIT ROLLBACK
СообщениеДобавлено: Пт, мар 15 2013, 15:17 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Чт, ноя 11 2004, 16:25
Сообщения: 3109
Пол: Мужской
to __Alex__, проверять sy-subrc после операторов insert/update?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Непонятности с SELECT MODIFY COMMIT ROLLBACK
СообщениеДобавлено: Пн, мар 18 2013, 14:16 
Младший специалист
Младший специалист

Зарегистрирован:
Ср, янв 25 2012, 01:54
Сообщения: 59
Алекс, почитайте про неявный коммит после некоторых операторов бд
http://sapland.ru/articles/stats/2010/1 ... _ABAP.html


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 10 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot]


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB