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

Часовой пояс: 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 часа


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

Сейчас этот форум просматривают: нет зарегистрированных пользователей


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

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