![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как сохранять содержимое файлов в БД и обратно ? [D5, MSSQL]
NewD © (2003-11-06 13:38:00)
имеется поле VARBINARY исползую ADO
и я в него сохраняю содержимое файла через Tstream
для сохранения в БД:
procedure TForm1.Button1Click(Sender: TObject);
var stream:tadoblobstream;
begin
try
ADODataSet1.Append;
if opendialog1.Execute then
begin
stream:=tadoblobstream.Create(tblobfield (ADODataSet1.FieldByName("BlOBFIELD")),bmReadWrite);
stream.LoadFromFile(opendialog1.FileName);
end;
ADODataSet1.Post;
except
on e:exception do showmessage(e.Message);
end ;
stream.free;
end;
для сохранения в файл
procedure TFormDOC.Button2Click(Sender: TObject);
var stream:tadoblobstream;
i:integer;
begin
try
if savedialog1.Execute then
begin
ADODataSet1.Edit;
stream:=tadoblobstream.Create(tblobfield(ADODataSet1.FieldByName("BlOBFIELD")),bmread);
stream.savetofile(savedialog1.FileName);
ADODataSet1.cancel;
end;
except
on e:exception do showmessage(e.Message);
end ;
stream.free;
end;
ошибок нет но почему то сохраняет 0 байт в файле,
что не так ?
или он не грузит в базу данные из файла ?
sniknik (2003-11-06 14:22:00) [1]
так это уже несответствие типов, может и ноль байт записывало потомуже, поменяй тип поля на blob (image к примеру).
посмотрел, у TBinaryField вообще нет stream-а (а приводится по типу к нему)
NewD (2003-11-06 13:54:00) [2]
я уже пробовал при сохранении выдает ошибку:
Invalid class Typecast
sniknik (2003-11-06 13:51:00) [3]
просто
tblobfield(ADODataSet1.FieldByName("BlOBFIELD")).savetofile(savedialog1.FileName);
попробуй, и аналогично чтение.