Текущее время: Ср, июл 23 2025, 11:28

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 15 ] 
Автор Сообщение
 Заголовок сообщения: удаление строк из БД
СообщениеДобавлено: Вт, июн 20 2006, 09:22 
Начинающий
Начинающий

Зарегистрирован:
Чт, июн 01 2006, 15:56
Сообщения: 23
Откуда: Екатеринбург
Я ввожу данные во внутреннюю таблицу с экрана. Эта внутренняя таблица заполняет таблицу БД.

У меня такая проблема, выделяю на экране строчки, удаляю(через delete where mark = 'X' ). Строчки из внутренней таблички удаляются, а как мне их удалить те выделенные строчки из таблицы БД? Через index нельзя, т.к добавлена сортировка и номер строки может поменяться. Подскажите, пожалуйста!


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: ....
СообщениеДобавлено: Вт, июн 20 2006, 09:30 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Чт, окт 21 2004, 11:27
Сообщения: 144
Откуда: Москва
Пол: Мужской
ну я так думаю сначала из БД лупом по внутреней delete по ключу )))


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, июн 20 2006, 09:46 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Ср, ноя 03 2004, 14:51
Сообщения: 1912
Откуда: КраснАдар
Пол: Мужской
Code:
loop at itab.
   if mark = 'X'.
     delete from dbtab where key = itab_key.
   endif.
endloop.

По внутренней находите строку в которой стоит ваш mark = 'X', берете из нее ключевое поле таблицы БД, потом удаляете из БД. Кажется так...


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, июн 20 2006, 10:01 
Старший специалист
Старший специалист

Зарегистрирован:
Пт, мар 25 2005, 11:46
Сообщения: 282
Откуда: SPb
Можно лупом создать ranges, а потом удалить все строки, которых не должно быть в БД, используя конструкцию IN ranges... Должно быстрее получиться...

_________________
Лучше сделать и пожалеть, чем не сделать и потом жалеть.


Последний раз редактировалось zaba Вт, июн 20 2006, 10:02, всего редактировалось 1 раз.

Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, июн 20 2006, 10:02 
Гуру-модератор
Гуру-модератор
Аватара пользователя

Зарегистрирован:
Пн, окт 11 2004, 20:32
Сообщения: 2470
Пол: Мужской
F1 на слове DELETE, там есть все варианты работы с таблицами БД, причем много. И читайте, и используйте внимательно, при маааленькой неточности в указании ключа можете получить бааальшие проблемы :)

_________________
- Может ли настоящий мастер кунг-фу получить по морде?
- Настоящий мастер может все!


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, июн 20 2006, 11:10 
Начинающий
Начинающий

Зарегистрирован:
Чт, июн 01 2006, 15:56
Сообщения: 23
Откуда: Екатеринбург
Через луп будет долго работать, L

To zaba: А как можно сделать через ranges, я про это ничего не слышала.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, июн 20 2006, 11:32 
Менеджер
Менеджер

Зарегистрирован:
Вт, дек 07 2004, 10:39
Сообщения: 610
Sveta83 написал(а):
Через луп будет долго работать, L

To zaba: А как можно сделать через ranges, я про это ничего не слышала.

delete .. where <key> in <range>
а вообще Арманн написал средство от многих проблем

_________________
полный SAPец


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, июн 20 2006, 12:42 
Старший специалист
Старший специалист

Зарегистрирован:
Пт, мар 25 2005, 11:46
Сообщения: 282
Откуда: SPb
см хелп на ranges

_________________
Лучше сделать и пожалеть, чем не сделать и потом жалеть.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, июн 20 2006, 18:14 
Начинающий
Начинающий

Зарегистрирован:
Чт, июн 01 2006, 15:56
Сообщения: 23
Откуда: Екатеринбург
я посмотрела хелп, но что-то не поняла. У меня много ключевых полей. Когда я определяю ranges, что туда нужно записать? И зачем нужно это использовать OPTION, LOW, HIGH ? Я совсем запуталась, помогите мне распутаться, пожалуйста :(


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, июн 21 2006, 06:21 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, авг 24 2004, 07:19
Сообщения: 3952
Откуда: ECC 6.0, South Kazakhstan
Sveta83 написал(а):
я посмотрела хелп, но что-то не поняла. У меня много ключевых полей. Когда я определяю ranges, что туда нужно записать? И зачем нужно это использовать OPTION, LOW, HIGH ? Я совсем запуталась, помогите мне распутаться, пожалуйста :(


мне так кажется для того, чтобы понять что из себя представляет range вам достаточно написать простенький отчет типа:

Code:
report z_bla_bla_bla.
   
  tables t001w.

  select-options: s_werks for t001w-werks.

  break-point.

запустить его, нажать кнопку Многократный выбор, ввести всевозможные варианты (интервалы, исключения и т.п.) и пустить на выполнение, а в точке останова посмотреть переменную s_werks.
Тогда все станет понятно.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, июн 29 2006, 08:59 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Ср, сен 21 2005, 10:01
Сообщения: 651
Откуда: СССР
Sveta83 написал(а):
я посмотрела хелп, но что-то не поняла. У меня много ключевых полей. Когда я определяю ranges, что туда нужно записать? И зачем нужно это использовать OPTION, LOW, HIGH ? Я совсем запуталась, помогите мне распутаться, пожалуйста :(


range не покатит, если больше одного ключевого поля, плюс в range ограничение на количество записей....


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, июн 29 2006, 11:47 
Ассистент
Ассистент

Зарегистрирован:
Чт, июн 23 2005, 11:51
Сообщения: 31
Откуда: Москва
а чем плохо так:
создаем внутр. таблицу по образу и подобию таблицы БД.
в неё закидываем данные, которые "mark = 'X'" (ну ес-но нужно чтобы ключевые поля заполнялись), а затем "DELETE z00_bla_bla FROM TABLE table_del".


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, июн 29 2006, 13:03 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Ср, сен 21 2005, 10:01
Сообщения: 651
Откуда: СССР
sam750 написал(а):
а чем плохо так:
создаем внутр. таблицу по образу и подобию таблицы БД.
в неё закидываем данные, которые "mark = 'X'" (ну ес-но нужно чтобы ключевые поля заполнялись), а затем "DELETE z00_bla_bla FROM TABLE table_del".


И про мандант не забыть...


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, мар 14 2007, 18:11 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Вт, янв 16 2007, 19:00
Сообщения: 168
Откуда: город
Подскажите, пожалуйста, ответ на один вопрос.
Нужно удалить записи из таблицы dbtab. Имеется внутренняя таблица itab, в которой есть ключевые поля из таблицы dbtab плюс несколько других полей. Будет ли работать конструкция
Code:
delete dbtab from table itab
Или необходимо, чтобы itab содержала ТОЛЬКО ключевые поля dbtab или ВСЕ поля dbtab? И на самом ли деле необходимо заполнять мандант в itab?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, мар 15 2007, 02:26 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Чт, мар 09 2006, 10:12
Сообщения: 565
Откуда: Волгодонск
Пол: Мужской
влад написал(а):
Подскажите, пожалуйста, ответ на один вопрос.
Нужно удалить записи из таблицы dbtab. Имеется внутренняя таблица itab, в которой есть ключевые поля из таблицы dbtab плюс несколько других полей. Будет ли работать конструкция
Code:
delete dbtab from table itab
Или необходимо, чтобы itab содержала ТОЛЬКО ключевые поля dbtab или ВСЕ поля dbtab? И на самом ли деле необходимо заполнять мандант в itab?


Необходимо и достаточно чтоб начало записи таблицы содержало полностью ключь к таблице БД (можно даже не в струтурированом виде - просто строка с ключом)... дальше может быть всё что угодно или не быть вовсе.


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

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


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

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


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

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