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

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

Delphi + поля объекта OLE в MS Access [D7, Access]


OlkaGTS ©   (2003-07-01 17:22:00) 

Уважаемые!
Каким образом можно работать с полями OLE из MS Access, поля содержат документы Word. Если можно, дайте ссылку, где можно об этом почитать.


Семен Сорокин   (2003-07-02 14:47:00) [1]

вот работающий пример (Лесник (с)):
var
MemStream: TMemoryStream;
Img: TBitmap;
jImg: TJPEGImage;
begin
OpenPictureDialog1.Execute;
if not (OpenPictureDialog1.FileName="") then begin
Img := TBitmap.Create;
jImg := TJPEGImage.Create;
MemStream := TMemoryStream.Create;
jImg.LoadFromFile(OpenPictureDialog1.FileName);
Img.Assign(jImg);
jImg.CompressionQuality := 60;
Img.SaveToStream(MemStream);
MemStream.Seek(0, soFromBeginning);
if not (DM.EmployesQuery1.State=dsEdit) then DM.EmployesQuery1.Edit;
TBLOBField(DM.EmployesQuery1.FieldByName("EPhoto")).LoadFromStream(MemStream);
DM.EmployesQuery1.Post;
MemStream.Free;
Img.free;
jImg.Free;
end;
end;


OlkaGTS   (2003-07-02 14:03:00) [2]

Ничего не получается. Он сохраняет файл в нечитабельном формате, то же самое происходит и при записи.


Семен Сорокин   (2003-07-01 17:33:00) [3]

function SaveFileFromBase(AId:integer; APath: string):boolean;
var
_bs : TStream;
_fs : TFileStream;
begin
Result := false;
with TADOQuery.Create(nil) do
try
SQL.Add("SELECT * FROM paterns WHERE id=:id");
Parameters.ParamByName("id").Value := AId;
Open;
if not Eof then begin
_bs := CreateBlobStream(FieldByName("File"), bmRead);
_fs := TFileStream.Create(ExcludeTrailingPathDelimiter(APath) + "\" + FieldByName("filename").AsString, fmCreate);
_fs.CopyFrom(_bs, 0)
end;
Result := true
finally
Close;
Free;
if _bs <> nil then
_bs.Free;
if _fs <> nil then
_fs.Free
end
end;

по аналогии смотри запись


Наверх

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