Текущее время: Вт, июл 01 2025, 19:56

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 22 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Как работать с полем типа STRING
СообщениеДобавлено: Вт, июн 06 2006, 10:59 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Пт, ноя 25 2005, 15:06
Сообщения: 143
При объявлении таблицы, в котором есть поле типа STRING, ругается, что она должна быть плоской структурой.
Как работать с такими таблицами? Только с помощью EXPORT/IMPORT?
Поделитесь кодом плз. кто встречался с таким.


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

Зарегистрирован:
Вт, дек 07 2004, 10:39
Сообщения: 610
низзя в словарных структурах стринг
чар большой можно

_________________
полный SAPец


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: да там
СообщениеДобавлено: Вт, июн 06 2006, 12:22 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Чт, окт 21 2004, 11:27
Сообщения: 144
Откуда: Москва
Пол: Мужской
максимум вроде char132


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, июн 06 2006, 12:39 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Пт, ноя 25 2005, 15:06
Сообщения: 143
Тогда другой вопрос, каким образом можно сохранять в таблице бинарный данные?


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

Зарегистрирован:
Вт, дек 07 2004, 10:39
Сообщения: 610
можно это делать построчно
таблица
id записи
номер строки
строка

чар можно гораздо больше чем 132, не то 65536, не то что то рядом

_________________
полный SAPец


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, июн 06 2006, 12:55 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Сб, сен 25 2004, 16:30
Сообщения: 1368
Откуда: Москва
Пол: Мужской
creo написал(а):
Тогда другой вопрос, каким образом можно сохранять в таблице бинарный данные?
Обычно это делают при помощи кластеров, см. конструкцию EXPORT TO DATABASE/IMPORT FROM DATABASE.

_________________
С уважением, Сергей Королев


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

Зарегистрирован:
Чт, июн 16 2005, 10:29
Сообщения: 336
Откуда: Минск->Москва
Пол: Мужской
Вот это как вариант хранения...
http://help.sap.com/saphelp_nw04/helpda ... ameset.htm


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

Зарегистрирован:
Пт, июн 02 2006, 09:59
Сообщения: 67
Пол: Мужской
Бинарные данные в таблице можно хранить в таблице БД в полях типа RAW и LRAW. В случае RAW, если не изменяет память, длина до 256, а в случае LRAW - от 256 и выше. Поле LRAW необходимо выровнять на границу 2-х байтов (объявить перед ним поле типа INT2).
Вообще говоря использовать можно довольно длинные поля (32 Кило, например), но вряд ли это разумно. Реально 1024 - 4096 байт
В 4.7 и выше перед записью в таблицу данные можно прессануть при помощи CL_ABAP_GZIP и т.п.


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

Зарегистрирован:
Пт, ноя 25 2005, 15:06
Сообщения: 143
abap написал:
Бинарные данные в таблице можно хранить в таблице БД в полях типа RAW и LRAW. В случае RAW, если не изменяет память, длина до 256, а в случае LRAW - от 256 и выше. Поле LRAW необходимо выровнять на границу 2-х байтов (объявить перед ним поле типа INT2).
Вообще говоря использовать можно довольно длинные поля (32 Кило, например), но вряд ли это разумно. Реально 1024 - 4096 байт
В 4.7 и выше перед записью в таблицу данные можно прессануть при помощи CL_ABAP_GZIP и т.п.


Не совсем понял про выравнивание.
При активации таблицы с LRAW пишет:

Таб. ... для журнала слишком длинная (необх. ключ<250, раздел данн.<16.000


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

Зарегистрирован:
Пт, июн 02 2006, 09:59
Сообщения: 67
Пол: Мужской
Поле LRAW, разумеется, не может быть ключевым (это с такой длинной-то!). Про выравнивание посмотри, например, в таблице DBTABLOG - поле DATALN там как раз для этого и применяется перед полем типа LRAW.
Ключ сделай обычный: например, если ты собираешься хранить xls-файлы в этой таблице, то ключевыми полями могут быть имя файла и номер записи в таблице


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

Зарегистрирован:
Пт, ноя 25 2005, 15:06
Сообщения: 143
abap написал:
Поле LRAW, разумеется, не может быть ключевым (это с такой длинной-то!). Про выравнивание посмотри, например, в таблице DBTABLOG - поле DATALN там как раз для этого и применяется перед полем типа LRAW.
Ключ сделай обычный: например, если ты собираешься хранить xls-файлы в этой таблице, то ключевыми полями могут быть имя файла и номер записи в таблице


Все создал.
Не могу понять сам механихм записи в LRAW.
Есть интернал табл. с данными в бинарном виде (получены с помощью WS_UPLOAD, в режиме 'BIN'). Причем каждая строка содержит, как я понял один двоичный код. Получается такая табличка, с кол-вом записей тысяч так на 120000.
Неужели объединять строки и разбивать их по длине LRAW?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, июн 06 2006, 17:56 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Ср, ноя 23 2005, 13:37
Сообщения: 1805
Откуда: ECC 6.0
Пол: Мужской
creo написал(а):
Есть интернал табл. с данными в бинарном виде (получены с помощью WS_UPLOAD, в режиме 'BIN'). Причем каждая строка содержит, как я понял один двоичный код.


Из документации к WS_UPLOAD:
"For 'BIN', the table is completely filled line by line. The last line is not necessarily filled completely with file contents. For the reason, the parameter FILELENGTH must also be evaluated."

Т.е. внутренняя таблица должна иметь строки нужной длины, а ф.м. сам разберётся как их заполнять целиком.

И ещё: "Obsolete. Use class CL_GUI_FRONTEND_SERVICES."


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

Зарегистрирован:
Вт, авг 17 2004, 12:44
Сообщения: 305
Откуда: Жайрем -> Астана
creo написал(а):
Все создал.
Не могу понять сам механихм записи в LRAW.
Есть интернал табл. с данными в бинарном виде (получены с помощью WS_UPLOAD, в режиме 'BIN'). Причем каждая строка содержит, как я понял один двоичный код. Получается такая табличка, с кол-вом записей тысяч так на 120000.
Неужели объединять строки и разбивать их по длине LRAW?


если в дальнейшем предполагается сохраненный файл в таблице выгружать например с ФМ WS_DOWNLOAD, то думаю удобней будет в таблице хранить и размер загруженного файла, раз это бинарный файл

а запихать в LRAW можно таблицу целиком, т.е не надо ничего объединять...ведь все равно придется выгружать ее

а читать/записывать в таблицу с LRAW как и говорили выше нужно с EXPORT TO DATABASE/IMPORT FROM DATABASE, но для этого ваша таблица должна быть определенной структуры http://help.sap.com/saphelp_470/helpdata/ru/fc/eb3c12358411d1829f0000e829fbfe/content.htm
есть для этого и стандарные элементы данных на INDX_*

да и вообще стоит почитать http://help.sap.com/saphelp_470/helpdata/ru/fc/eb3bf8358411d1829f0000e829fbfe/content.htm

удачи!


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, июн 07 2006, 08:28 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Вт, авг 17 2004, 12:44
Сообщения: 305
Откуда: Жайрем -> Астана
также для примера можете посмотреть, или даже скопировать в свою таблицу стандартную таблицу INDX, после удалите или замените своими, поля идущие после SRTF2 до CLUSTR


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, июн 07 2006, 16:44 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Пт, ноя 25 2005, 15:06
Сообщения: 143
Все сделал, и как показалось в начале все заработало:
Code:
export bin_tab from bin_tab to database zdog_word(ST) ID '000001200601101'.

clear bin_tab.
refresh bin_tab.

import bin_tab = bin_tab from database zdog_word(ST) ID '000001200601101'.

В такой последовательности таблица bin_tab ВСЕГДА заполняется нормально. Но после того, как разнес EXPORT и IMPORT в разные места программы, IMPORT в упор перестал заполнять таблицу BIN_TAB. Вернее что-то все-таки делает, т.к. таблица из Inital превращается в 0x32000. Запись в таблице точно есть с таким ID. Не пойму в чем прикол?


Принять этот ответ
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 22 ]  На страницу 1, 2  След.

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


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

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


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

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