10.02.2006, 10:48 | #1 |
Участник
|
Вопрос ConPeek
Подобный вопрос задавался, попробую подругому.
Кто-нибудь знает механизм работы ConPeek. Имеется ввиду не синтаксис, а механизм. Т.е. как он берет из поля типа "Image" таблицы данные (если точнее таблица SalesTableDelete, поле SalesTable). Т.е. интересует схема хранения данных и алгоритм преобразования binary в данные которые туда были помещены Аксаптой. Просто стоит задача реализовать данный механизм средствами MS-SQL. |
|
10.02.2006, 13:17 | #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). |
13.02.2006, 13:24 | #3 |
Участник
|
Да.... жаль, что идей нет.
Думаю, что можно считать тему закрытой. |
|
14.02.2006, 09:49 | #4 |
Участник
|
Во вложении хранимая процедура, разбирающая поле типа контейнер и выводящая информацию по таблице и полям, находящимся в контейнере
!!! Не разбирает контейнерные поля, хранящиеся в сохраненной записи !!! пример вызыва в QA PHP код:
__________________
Axapta v.3.0 sp5 kr2 |
|
|
За это сообщение автора поблагодарили: mazzy (5), EVGL (5), mit (4), kashperuk (5), sukhanchik (2), Logger (20). |
27.02.2006, 10:46 | #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. Как быть в этом случае? |
|
27.02.2006, 11:09 | #6 |
Участник
|
Фирменный источник - windbg
Первый байт - это идентификатор элемента, содержащегося в блобе. 0x07 - это идентификатор контейнера. Второй байт - это тип первого элемента в контейнере (в данном случае 0x1d - это запись). Эта процедура поддерживает обработку только контейнеров, содержащих в себе записи
__________________
Axapta v.3.0 sp5 kr2 |
|
Теги |
container, download, axapta |
|
Похожие темы | ||||
Тема | Ответов | |||
dataareaid conpeek | 5 | |||
Вопрос по Проектам | 35 | |||
Вопрос по проектам Фиксированная цена | 9 | |||
расчеты с персоналом. НДФЛ. вопрос чайника | 2 | |||
changecompany(conpeek(container)) | 3 |
|