Показать сообщение отдельно
Старый 04.07.2008, 09:30   #2  
foxsoft2005 is offline
foxsoft2005
Участник
Аватар для foxsoft2005
 
93 / 10 (1) +
Регистрация: 21.11.2006
Что? Никто даже не пробовал?

Ну тогда расскажу о своих изысканиях.

fob программно загрузить можно. Нужно лишь идентифицировать из фоба участок данных, относящийся к конкретному объекту. Задача нетривиальная, так как мне пока не понятен его внутренний формат. Понятное дело, там присутствует как описание объекта (видимо, это запись в таблице Object только в бинарном виде), так и сам объект (это значение BLOB поля в таблице Object). А далее нужно просто заливать бинарную часть, касающуюся данных самого объекта в соотв. BLOB-поле с MODIFY(TRUE) на таблице Object.

Кроме того, есть вариант, как смоделировать заливку фоба.

Берем таблицу Object. Ищем нужный объект и выгружаем значение BLOB поля в файл (например, в файл с расширением dat). Здесь же формируем некий настроечный файл, в котором на каждый выгруженный объект будет присутствовать соответствующая строка с данными полей таблицы Object. Потом же, пользуясь dat-файлом и настроечным файлом - заливаем объекты в систему.

Тут возникает вопрос - а что делать с таблицами, ведь они есть физический объект БД. Как их заливать фобом?

Ответ - а очень просто. Если внимательно посмотреть на фоб для единственной таблицы - можно увидеть, что структура таблицы хранится и в нем тоже. Посему в момент изменения бинарных данных в BLOB поле таблицы Object происходит изменение таблицы в БД. То же самое со вставкой. Т.е. мы стандартными средствами C/AL создаем запись в таблице Object, далее загружается dat файл и в момент выполнения INSERT(TRUE) таблица физически создается в БД.

P.S. Кстати, методом валидейта, например, поля Скомпиллирован в таблице Object можно компилить объекты в момент вставки.

Так-то! .
__________________
"И лишь патологоанатом не берет работу на дом" (с) Вишневский