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

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


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

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


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

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