Форум: "Начинающим";
Текущий архив: 2009.02.22;
Скачать: [xml.tar.bz2];
ВнизНепонятки с базой данных Найти похожие ветки
← →
Pavelkq (2009-01-10 00:10) [0]Имеются функция и процедура. Функция читает из связки 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, они отображаются, как Точечный рисунок.
Где тут собака порылась?
← →
Pavelkq (2009-01-10 00:16) [1]Упс, вопрос отпал, когда почитал справку и поэксперементировал с BS.SEEK
Правильное решение в обоих случаях поставитьBS.Seek(0, soFromBeginning);
← →
Германн © (2009-01-10 00:52) [2]
> Упс, вопрос отпал, когда почитал справку
Вообще-то нормальные люди всегда должны сначала читать справку, а уж потом лезть с вопросом на форум. Надеюсь ты это поймёшь.
← →
Игорь Шевченко © (2009-01-10 01:35) [3]"Корректно оформляйте заголовок ветки, который должен кратко отражать суть вопроса"
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2009.02.22;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.005 c