SAPфорум.RU https://sapboard.ru/forum/ |
|
Код для выборки из внутренних таблиц https://sapboard.ru/forum/viewtopic.php?f=13&t=100140 |
Страница 1 из 1 |
Автор: | saphir [ Ср, июл 27 2022, 11:16 ] |
Заголовок сообщения: | Код для выборки из внутренних таблиц |
Добрый день, при запуске программа ругается на то, что таблица maravtable не задекларирована. Хотя написано что maravtable TYPE TABLE OF marastr. Подскажите, пожалуйста, что не так ? Как сделать этот простой селект. Спасибо Code: TYPES: BEGIN OF marastr,
mandt(3) TYPE I, mantr(10) TYPE I, mtart(30) TYPE C, END OF marastr. TYPES: BEGIN OF marainstr, mandt_i(5) TYPE I, mantr_i TYPE I, mtart_char TYPE C, END OF marainstr. TYPES: BEGIN OF ztabl, id TYPE I, text TYPE C, num TYPE P, END OF ztabl. DATA: marav TYPE marastr, maravtable TYPE TABLE OF marastr, maravtable1 TYPE TABLE OF marainstr, ztable TYPE TABLE OF ztabl. marav-mandt = 500. marav-mantr = 123456789. marav-mtart(30) = 'ROHRMATERIALLE'. write : marav-mandt , marav-mantr , marav-mtart, 'Присвоили значения'. INSERT marav INTO TABLE maravtable. SELECT * FROM maravtable ORDER BY mandt. ENDSELECT. |
Автор: | Кодер [ Ср, июл 27 2022, 11:25 ] |
Заголовок сообщения: | Re: Ошибка в простом коде |
Вы объявили внутр. таблицу maravtable . Внутр.таблица это почти как массив. Т.е. этот объект не в БД, а вашей программе существует. Выбирать с помощью SELECT из нее нельзя (в новых версиях можно, но лучше пока вам считать, что нельзя) |
Автор: | saphir [ Ср, июл 27 2022, 11:40 ] |
Заголовок сообщения: | Re: Ошибка в простом коде |
Спасибо за быстрый ответ. Я учусь. Подскажите, пожалуйста, я правильно понимаю, что с внутренними таблицами нужно работать через READ INTO и т.д., а SQL для таблиц из БД? |
Автор: | Кодер [ Ср, июл 27 2022, 15:00 ] |
Заголовок сообщения: | Re: Код для выборки из внутренних таблиц |
Для чтения данных из внут. таблиц используются read table - чтение одной записи по ключу или индексу loop at - перебор строк внут.таблы в цикле, при этом в Where можно задать условие, которое ограничит перебираемые записи INTO в обоих случаях можно использовать, но лучше не надо, т.к. в этом случае нужна переменная и время на перекладывание строки из внут. таблы в эту переменную. Лучше использовать ASSIGNING (в field-symbol) или REFERENCE INTO (привязка строки таблы к переменной типа ссылка). Все информацию по оператору можно посмотреть во встроенном хелпе. Что бы его посмотреть, надо встать на интересующую конструкцию и нажать F1. Обычно в статье будет и ссылка на пример использования конструкции Хелп так же доступен и в инете. Например, раздел про обработку внутр таблиц. Нужно только учитывать версию системы. Синтаксис и возможности языка могут сильно меняться от версии к версии |
Автор: | saphir [ Ср, июл 27 2022, 15:46 ] |
Заголовок сообщения: | Re: Код для выборки из внутренних таблиц |
Спасибо большое за ответ |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |