|
|
#1 |
|
Участник
|
Вопрос ConPeek
Подобный вопрос задавался, попробую подругому.
Кто-нибудь знает механизм работы ConPeek. Имеется ввиду не синтаксис, а механизм. Т.е. как он берет из поля типа "Image" таблицы данные (если точнее таблица SalesTableDelete, поле SalesTable). Т.е. интересует схема хранения данных и алгоритм преобразования binary в данные которые туда были помещены Аксаптой. Просто стоит задача реализовать данный механизм средствами MS-SQL. |
|
|
|
|
#2 |
|
NavAx
|
Сохранив простенькую таблицу как контейнер в поле SalesTable таблицы SalesTableDelete, а затем посмотрев на это поле с помощью запроса в QA, то в начале этого длинного HEX-кода можно найти Id таблицы (с 14 по17 символы), затем угадываются Id-шники полей таблицы с их данными (id поля1 - данные, id поля2 - данные и т.д.)... (Все id объектов записаны в обратном порядке, например, если id таблицы 2115(HEX), то в базе он будет записан как 1521). Но после анализа последнего поля таблицы - темный лес...
У кого будут еще какие идеи? Последний раз редактировалось Roman777; 10.02.2006 в 13:19. |
|
|
|
| За это сообщение автора поблагодарили: DarkBear (1). | |
|
|
#3 |
|
Участник
|
Да.... жаль, что идей нет.
Думаю, что можно считать тему закрытой. |
|
|
|
|
#4 |
|
Участник
|
Во вложении хранимая процедура, разбирающая поле типа контейнер и выводящая информацию по таблице и полям, находящимся в контейнере
!!! Не разбирает контейнерные поля, хранящиеся в сохраненной записи !!! пример вызыва в QA PHP код:
__________________
Axapta v.3.0 sp5 kr2 |
|
|
|
| За это сообщение автора поблагодарили: mazzy (5), EVGL (5), mit (4), kashperuk (5), sukhanchik (2), Logger (20). | |
|
|
#5 |
|
Moderator
|
Уважаемый AndyD, подскажите, пожалуйста:
приведенный Вами алгоритм разбора контейнера - Ваш или из какого-то фирменного источника? (Речь именно об алгоритме, а не о его воплощении в виде процедуры). В начале процедуры у Вас делается проверка: if ((cast(substring(@img, 1, 1) as integer) <> 7) or (cast(substring(@img, 2, 1) as integer) <> 29)) return т.е. для того, чтобы идти дальше, первые два байта должны быть 7 и 29 соответственно. У меня в некой задачке получается 7 и 1. Как быть в этом случае? |
|
|
|
|
#6 |
|
Участник
|
Фирменный источник - windbg
![]() Первый байт - это идентификатор элемента, содержащегося в блобе. 0x07 - это идентификатор контейнера. Второй байт - это тип первого элемента в контейнере (в данном случае 0x1d - это запись). Эта процедура поддерживает обработку только контейнеров, содержащих в себе записи
__________________
Axapta v.3.0 sp5 kr2 |
|
|
| Теги |
| container, download, axapta |
|
|
Похожие темы
|
||||
| Тема | Ответов | |||
| dataareaid conpeek | 5 | |||
| Вопрос по Проектам | 35 | |||
| Вопрос по проектам Фиксированная цена | 9 | |||
| расчеты с персоналом. НДФЛ. вопрос чайника | 2 | |||
| changecompany(conpeek(container)) | 3 | |||
|