Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   [решено] Вставить и достать файл ворда в БД Access (http://forum.oszone.net/showthread.php?t=231765)

game_Racer 31-03-2012 12:57 1890634

Вставить и достать файл ворда в БД Access
 
Имеется подключение к mdb файлу, в нем таблица с полем OLE. Нужно добавить в эту таблицу запись (желательно запросом), и в поле OLE поместить документ Word.
Пробовал что то типа:
Код:

if OpenDialog1.Execute=True then
with ADOQuery1 do begin
close;
sql.Clear;
sql.Add('insert into lections values (:st)');
Parameters.ParamByName('st').LoadFromFile(dlgOpen1.FileName,ftBlob);
ExecSQL;
end;

После этого в поле БД двоичные данные, и как открыть их я не знаю.

game_Racer 31-03-2012 13:54 1890667

Нашел решение. Оказывается я правильно записываю, а читать нужно так:
Код:

procedure TForm1.BitBtn7Click(Sender: TObject);
var
 Ptkwrd: TMemoryStream;
 Blob: TBlobStream;
begin
 Ptkwrd:=TMemoryStream.Create;
 TBlobField(Query1.FieldByName('TEKST')).SaveToStream(Ptkwrd);
 Ptkwrd.Position:=0;
 Ptkwrd.SaveToFile('temp.doc');
 ShellExecute(0,'open','temp.doc',nil,nil,SW_SHOWNORMAL);
 Ptkwrd.Free;
end;


Iska 31-03-2012 14:47 1890700

game_Racer, всё правильно. Только это никак не сделает содержимое указанного поля «OLE'мным».

game_Racer 31-03-2012 14:54 1890705

Iska, Так мне по сути это и не нужно. К бд кроме как из моей проги доступа не будет.

Iska 31-03-2012 16:41 1890765

game_Racer, ясно. Смутило именно упоминание в контексте OLE вместо BLOB.


Время: 08:07.

Время: 08:07.
© OSzone.net 2001-