|  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 | |||
| 
 |