Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Добавление объекта OLE в MS ACCESS [D6]


Doom ©   (2003-03-20 08:19:00) 

Поммогите разобраться с такой проблемой.

Упрощенно задача такая:
Есть база, предназначенная для использования в ACCESS,
Delphi применяется для автоматизации следующей задачи:
В базе есть 2 таблицы (остальные здесь не важны)
1. "Папки" с полем "ИмяПапки" : тип-Текстовый
// здесь хранятся записи в виде "c:\Work", "d:\Work" и т.п.
2. "Документы" с полями
1. "ИмяДокумента" : текстовый // сюда заносится полное имя файла
2. "Документ" : тип - Поле объекта OLE // сюда вносится его содержимое

В таблицу "Документы" нужно добавить имена и содержимое всех файлов,
найденных во всех папках таблицы "Папки".

Полные имена всех файлов во всех папках в таблицу внести удается, а вот потом....

Вопрос вот в чем : Как, зная имя файла, добавить его как OLE в поле "Документ" ?


Serginio   (2003-03-20 17:10:00) [1]

Работай через Stream Оле объекта. Он поддерживает LoadFromStream и SaveToStream либо через PersistStream через который на самом деле и работают предыдущие 2 метода.


Doom   (2003-03-20 14:59:00) [2]

Мастера !!!
Неужели никто не знает и не поделится, как заносить OLE в поле???


Doom   (2003-03-20 12:18:00) [3]

Такое решение конечно не годится.
С этой базой работать будут в ACCESS
а как это сделать другими средствами (Visual Basic подойдет вполне)

p.s. Просьба за упоминание ВАСИКА веточку не убиватьт ):::


DOOMin   (2003-03-20 11:46:00) [4]

из Дельфи я не понял как это сделать. Пытался, но при записи там отличаются форматы (смотрел по дампу). Но можно использовать OLE поле как BLOB. Ты тогда создаешь FileStream на основе своего документа и преобразуя в BLOBStream записываешь в поле. Код работает, но в самом access ты увидишь в таблице надпись "двоичные данные" и соответственно вызвать из access word двойным щелчком по полю не получится, только можно снова из программы вычитать это поле, сохранить во временный файл и запустить word. может кто-то знает другой способ, был бы рад ознакомится


Наверх

Титульная страница Поиск, карта сайта Написать письмо