Войти

Показать полную графическую версию : [решено] Вставить и достать файл ворда в БД Access


game_Racer
31-03-2012, 12:57
Имеется подключение к 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
Нашел решение. Оказывается я правильно записываю, а читать нужно так:
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
game_Racer, всё правильно. Только это никак не сделает содержимое указанного поля «OLE'мным».

game_Racer
31-03-2012, 14:54
Iska, Так мне по сути это и не нужно. К бд кроме как из моей проги доступа не будет.

Iska
31-03-2012, 16:41
game_Racer, ясно. Смутило именно упоминание в контексте OLE вместо BLOB.




© OSzone.net 2001-2012