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

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

Оле объект и База данных [D7, Paradox]


Страницы:   1 2

niko4543 ©   (2004-06-28 09:10:00) 

Здравствуйте.
Подскажите пожайлуста как можно сохранить в базу данных в блоб
поле ОЛЕ  объект, вернее в ОЛЕ загружен вордовский документ и его надо сохранить в базу в блоб поле минуя сохранение в файл.А сохранённые оле объекты как файл и подгруженные  в ОЛЕ контейнер я сохраняю таким образом:  

var
OLE : TOLEContainer;
TBS : TBlobStream;
begin
OLE:=FindComponent('OleContainer1') as TOLEContainer;
if Assigned(OLE) then
with OLE do begin
{добавляю в таблицу новую запись}
Table1.Insert;
{создаюм поток, связанный с BLOB полем}
TBS:=TBlobStream.Create(Table1.FieldByName('OLE') as
TBLOBField, bmReadWrite);
{сохраняем OLE-объект в поток}
SaveToStream(TBS as TStream);
{уничтожаю поток}
TBS.Free;
Exit;

кно это к сожелению не подходит к загруженному в в ОЛЕ контейнер документ Ворд.


niko4543   (2004-07-03 09:09:00) [1]

>>>>>>>> bushmen и КурдльПомогите мне разобраться где находится поток у DataSet.Если честно не врублюсь. Сколько всего перепробывал не получается.


> bushmen ©   (28.06.04 14:32) [22]


> Попробуй сам разобраться. Все лежит на поверхности. Если
> что-то не додумаешь, задавай вопросы.

Блин не получается за......лся!!!!!!!!!!!!


niko4543   (2004-07-03 09:07:00) [2]

>>>>>>>> bushmen и КурдльПомогите мне разобраться где находится поток у DataSet.Если честно не врублюсь. Сколько всего перепробывал не получается.


> Попробуй сам разобраться. Все лежит на поверхности. Если
> что-то не додумаешь, задавай вопросы.


bushmen   (2004-06-28 14:32:00) [3]

>niko4543   (28.06.04 13:26) [20]

Попробуй сам разобраться. Все лежит на поверхности. Если что-то не додумаешь, задавай вопросы.


Курдль   (2004-06-28 14:04:00) [4]

Я приветствую твое упорство, но без знаний того, что TDataSet - не просто св-во TDataSource, а базовый класс для большинства компонентов, работающих с наборами данных, написать утилитку будет проблематично. Я в [3] привел абсолютно исчерпывающий пример кода в полном соответствии с заданным вопросом. Извини, конечно, что не всю "утилитку" и не в твоих наименованиях. Так что прервал дискуссию я не из вредности, а потому, что предугадываю цепочку твоих дальнейших вопросов, которым не будет конца, пока "утилитка" не заработает.
Написать на мыло мне можно (для этого я его и оставил), но я не являюсь лучшим знатоком Делфей, так что лучше обращайся к коллективному разуму прямо на этот сайт.


niko4543   (2004-06-28 13:26:00) [5]

Нет невкоем случае, я необижаюсь.Я дейчтвительно благодарен вам за ответы (>>>>>>bushmen,Курдль). Просто я задолбался с этим приложением мне надо сегодня написать эту утилитку, но увы неполучается . А базу я связал как положено Table1 и DataSource1, ладно буду дальше разбераться сам, если что напишу.


bushmen   (2004-06-28 13:09:00) [6]

>niko4543   (28.06.04 13:00) [17]

Во-первых, не надо обижаться. Раз ты пишешь приложение работы с базами данных, то ты ДОЛЖЕН использовать компоненты доступа к данным. Теперь понятнее стало?


niko4543   (2004-06-28 13:05:00) [7]

Во всяком случае я могу написать тебе на мыло?. Когда прочту книжку разумеется.


niko4543   (2004-06-28 13:00:00) [8]

Смешно. Спасибо за ответы, большое спасибо.


Курдль   (2004-06-28 12:58:00) [9]

Сегодня не получится (во всяком случае - бесплатно).


niko4543   (2004-06-28 12:47:00) [10]

>>>Курдль
Я с удовольствием возбму книжку и почитаю но мне надо сегодня а под рукой нет книжки,а мне надо срочно. Объясни пожайлуста в чём я ошибся. Насколько я помню DataSet это свойство DataSource.
???????????????????????????????????????????????????????


Курдль   (2004-06-28 12:19:00) [11]

Я подскажу. Возьми книжку про Делфи + ДБ и посвяти себя её чтению хоть на недельку. Потом мы будем говорить на одном языке.


niko4543   (2004-06-28 12:17:00) [12]

Я не профессионал это во первых, а во вторых у меня долгое время небыло практики и в третьих я уже задолбался. Не подскажешь? :))


bushmen   (2004-06-28 11:25:00) [13]

>niko4543   (28.06.04 11:05) [11]

Как же ты с такими знаниями пишешь программу? :))


niko4543   (2004-06-28 11:05:00) [14]

DataSource1 - есть
Table1 - есть
DataSet в DataSource1 может есчё компонент какой нибудь нужен??????


Курдль   (2004-06-28 10:58:00) [15]

Ну, крындец! Не настолько же я добрый!
Попробуй сделать FindComponent('DataSet1') по всем своим проектам! :(


niko4543   (2004-06-28 10:56:00) [16]

Кстати пишет что: Undeclared identifier: 'DataSet1'. Что за хрень???


Курдль   (2004-06-28 10:44:00) [17]


> niko4543   (28.06.04 10:01) [7]
> в частности что это: sdqTemplate.State
> и это sdqTemplateTEM_DATA

Хорошо. Я сёдня добрый...
DataSet1.State
DataSet1.FieldByName('TEM_DATA').LoadFromStream(mstr);


niko4543   (2004-06-28 10:01:00) [18]

в частности что это: sdqTemplate.State
и это sdqTemplateTEM_DATA


niko4543   (2004-06-28 10:00:00) [19]

mstr.Seek(0, soFromBeginning);эту строчку я понял выставляется поток на начало.

if not ( sdqTemplate.State in [dsInsert, dsEdit]) then  sdqTemplate.Edit;
sdqTemplateTEM_DATA.LoadFromStream(mstr);
а вот с этим туго


Курдль   (2004-06-28 09:55:00) [20]

Тебя должен интересовать код со строчки "... mstr := TMemoryStream.Create;" - создание потока.
Потом содержимое контейнера помещается в этот поток.
Далее - указатель потока выставляется на начало.
ДатаСэт (в моем случае TSDQuery) устанавливается в режим редактирования.
В BLOB-поле (sdqTemplateTEM_DATA) грузятся данные из потока.
Освобождается память, выделенная под поток.


Страницы:   1 2

Наверх

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