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

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

Картинка в access


Sam Plastinin ©   (2003-07-22 09:43:00) 

Здравствуйте! У меня следующая ситуация - в access"овской базе мне необходимо хранить картинки, для чего я задал данному полю тип "поле объекта OLE". Теперь, пытаясь вывести эту картинку в DBImage я получаю ошибку - дескать в поле нет картинки. В различных faq"ах и kuliba"х первым делом прелагается сделать отображение через blobstream, но то ли в 6-х Дельфях это все не поддерживается, то ли как то по-другому реализовано - не могу разобраться. Помогите пожалуйста, как лучше поступить. Заранее благодарю!


sniknik   (2003-07-28 12:55:00) [1]

sniknik © (22.07.03 10:55)
>> DBImage я получаю ошибку
>ложи картинку в дельфях, а не в Access-е.
....
если положиш так, то ошибки не будет у DBImage параметры на поле пропишеш и все.

для image анологично обратный метод 2.


Sam   (2003-07-28 11:45:00) [2]

Я так понял, что все предлагаемые мне советы предназначены для записи картинки в таблицу БД, а как мне вытащить ее на свет божий, т.е. отобразить в image или dbimage?


nv-vetal   (2003-07-23 16:04:00) [3]

Nicolay, я знаю что стрельцы любят спорить, но тот метод что я предложил самый простой.


sniknik   (2003-07-22 21:27:00) [4]

nv-vetal © (22.07.03 16:42)
> Все другие методы не работают.
поспорим?


nv-vetal   (2003-07-22 16:42:00) [5]

надо через Делфи вставить картинку технология АДО, а потом уже мона смотреть. Все другие методы не работают.


Silla   (2003-07-22 13:05:00) [6]

Попробуй посмотреть
http://www.all-for-delphi.narod.ru/files/example/picture.rar


Sam Plastinin   (2003-07-22 11:12:00) [7]

спасибо!


sniknik   (2003-07-22 10:55:00) [8]

> DBImage я получаю ошибку
ложи картинку в дельфях, а не в Access-е.
к примеру

ADOCommand1.CommandText:= "UPDATE MyTable SET ImField=:ImField WHERE AUTOID="+ADODataSet1.FieldByName("AUTOID").AsString;
ADOCommand1.Parameters.ParamByName("ImField").LoadFromFile(Edit1.Text, ftGraphic);
ADOCommand1.Execute;


> но то ли в 6-х Дельфях это все не поддерживается
конечно не поддерживается, это надо на них программировать
чтото вроде
var st: string;
Stream: TMemoryStream;
begin
if ADODataSet1.Active then begin
Stream:= TMemoryStream.Create;
try
Image1.Picture.Bitmap.SaveToStream(Stream);
st:= ADODataSet1.FieldByName("AUTOID").AsString;
ADOCommand1.CommandText:= "UPDATE MyTable SET ImField=:ImField WHERE AUTOID="+St;
ADOCommand1.Parameters.ParamByName("ImField").LoadFromStream(Stream, ftGraphic);
ADOCommand1.Execute;
finally
Stream.Free;
( например счас выяснится, что примеры на ADO я совершенно зря приводил, у вас к нему отврашение(необязательно конечно)

> DBImage я получаю ошибку
ложи картинку в дельфях, а не в Access-е.
к примеру

ADOCommand1.CommandText:= "UPDATE MyTable SET ImField=:ImField WHERE AUTOID="+ADODataSet1.FieldByName("AUTOID").AsString;
ADOCommand1.Parameters.ParamByName("ImField").LoadFromFile(Edit1.Text, ftGraphic);
ADOCommand1.Execute;


> но то ли в 6-х Дельфях это все не поддерживается
конечно не поддерживается, это надо на них программировать
чтото вроде
var st: string;
Stream: TMemoryStream;
begin
if ADODataSet1.Active then begin
Stream:= TMemoryStream.Create;
try
Image1.Picture.Bitmap.SaveToStream(Stream);
st:= ADODataSet1.FieldByName("AUTOID").AsString;
ADOCommand1.CommandText:= "UPDATE MyTable SET ImField=:ImField WHERE AUTOID="+St;
ADOCommand1.Parameters.ParamByName("ImField").LoadFromStream(Stream, ftGraphic);
ADOCommand1.Execute;
finally
Stream.Free;
end;
end;
end;


> как лучше поступить
вопрос вопросов, ответа не бывает без отрыва от конкретной ситуации. (например счас выяснится, что примеры на ADO я совершенно зря приводил, у вас к нему отврашение(необязательно конечно)) ну и дело предпочтений конечно. (иногда закрываеш глаза на явный недостаток метода, по разным причинам)


Наверх

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