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

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

Присвоение изображения ячейки в DBGrid [D6, MS Access]


Dyusha ©   (2005-02-04 21:50:00) 

Здравствуйте Уважаемые Мастера!!! У меня есть такой код

ADOQuery1.FieldByName('Otpusk').AsString:=Edit1.Text; (т.е присваивается полю Otpusk значение Edit1)

далее у меня в DBImage загружается картинка

if openpicturedialog1.Execute then dbimage1.Picture.LoadFromFile(openpicturedialog1.FileName);

теперь надо столбцу FOTO присвоить эту картинку, я делаю это так

ADOQuery1.FieldByName('FOTO').AsBCD:=dbimage1.Picture;

Компилятор мне выдает следующую ошибку: «Incompatible types: 'TBcd' and 'TPicture'», пожалуйста, помогите присвоить изображение столбцу, сколько методов перепробовал, не получается.

Заранее благодарю за предоставленную помощь


Dyusha   (2005-02-04 22:37:00) [1]

FESS и Val большое спасибо буду пробовать, если не трудно оставьте свое мыло, вдруг возникнут вопросы...... the best :-))


fess   (2005-02-04 22:33:00) [2]

:)
dm это Data Module...
Если ты просто кинул на форму ADOQuery, то можно обойтись и без dm!

Var Bitmap : TMemoryStream;

Все правильно - поле у тебя нужного формата...


Dyusha   (2005-02-04 22:26:00) [3]

таблица создавалась в Access, для поля Foto был применен тип данных: "Поле объекта OLE". В DBGrid'e в поле Foto стоит <Blob>, значит тип уже Blob/

Кстати Bitmap какого типа объявляется и что за dm???


fess   (2005-02-04 22:19:00) [4]

Привет! Создай блоб поле FOTO и примени следующий алгоритм:

Bitmap := TMemoryStream.Create;
Image1.Picture.Bitmap.SaveToStream(Bitmap);
dm.ADOQueryBlob.Active:=false;
dm.ADOQueryBlob.SQL.Clear;
dm.ADOQueryBlob.SQL.Add('UPDATE Table1 SET [Foto]=:Foto WHERE Id_Answer = '+IntToStr(Id_Answer));
dm.ADOQueryBlob.Parameters.ParamByName('Foto').LoadFromStream(Bitmap, ftBlob);
dm.ADOQueryBlob.ExecSQL;
BitMap.Free;


Dyusha   (2005-02-04 22:11:00) [5]

Пропобал еще в наглую загружать в активную строку изображение
if openpicturedialog1.Execute then
dbimage1.Picture.LoadFromFile(openpicturedialog1.FileName);
adoquery1.Post;

однако ADOQuery ругается на то, что открыт не для Edit или Read,открываю ADOQuery.Edit перед if никакой реакции не последовало :-((


Val   (2005-02-04 22:02:00) [6]

напрямую блоб загружается в поле из файла или из потока.


Dyusha   (2005-02-04 21:58:00) [7]

на прямую никак нельзя присвоить? как это происходит с текстом


Val   (2005-02-04 21:54:00) [8]

см. TBlobField.LoadFromFile и т.д.


Наверх

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