![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Непонятки с базой данных [D6, XP]
Pavelkq © (2009-01-10 00:10:00)Имеются функция и процедура. Функция читает из связки Access - ADOTable - DataSource - DBGrid картинки из разных полей.
Процедура записывает туда же.
Procedure TOKBottomDlg1.PutBMP(mini: byte; bmp:TBitmap);
var BS: TADOBlobStream;
begin
try
BS.Seek(82, soFromBeginning);
BS:= TADOBlobStream.Create(TBlobField(DBGrid1.Fields[mini]),bmWrite);
bmp.SaveToStream(BS);
finally
BS.Free;
end;
end;
function TOKBottomDlg1.GetBMP(id: integer; mini: byte):TBitmap;
var BS: TADOBlobStream;
bmp :TBitmap;
begin
DBGrid1.DataSource.DataSet.MoveBy(id);
try
BS:= TADOBlobStream.Create(TBlobField(DBGrid1.Fields[mini]), bmRead);
BS.Seek(82, soFromBeginning);
bmp:=TBitmap.Create;
bmp.LoadFromStream(BS);
Result:=bmp;
finally
bmp.Free;
BS.Free;
end;
end;
Однако, изображения записанные процедурой (отображаются в базе Access, как двоичные данные) не возможно считать функцией. На строке
bmp.LoadFromStream(BS);
Выводится ошибка, что это не есть валидный битмап.
Замечу, что когда заношу в базу рисунки прямо через MS ACCESS, они отображаются, как Точечный рисунок.
Где тут собака порылась?
Игорь Шевченко (2009-01-10 01:35:00) [1]"Корректно оформляйте заголовок ветки, который должен кратко отражать суть вопроса"
Германн (2009-01-10 00:52:00) [2]
> Упс, вопрос отпал, когда почитал справку
Вообще-то нормальные люди всегда должнысначала читать справку, а уж потом лезть с вопросом на форум. Надеюсь ты это поймёшь.
Pavelkq (2009-01-10 00:16:00) [3]Упс, вопрос отпал, когда почитал справку и поэксперементировал с BS.SEEK
Правильное решение в обоих случаях поставить
BS.Seek(0, soFromBeginning);