![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Хранение рисунков в базе данных [D5, MS Access]
Viktor © (2003-04-29 01:36:00)Помогите решить проблему хранения рисунков в базе данных Access
Доступ к базе данных через ADO
На форме есть DBGrid и DBImage
При вызове формы выдается такое сообщение
Bitmap image is not valid
А также как добавлять эти рисунки
Viktor (2003-05-13 01:50:00) [1]http://www.all-for-delphi.narod.ru/files/example/picture.rar
Вот набросал пример, не знал что всем будет интересно
> Georgi Georgiew
Уже 4
Georgi Georgiew (2003-05-12 17:56:00) [2]Как сделал ?
Viktor (2003-05-04 00:59:00) [3]Спасибо всем!
Разобрался, на самом деле все в хранении формата данных
Access поддерживает один, а средствами Delphi другой.
С полем BLOB разобрался.
Еще раз спасибо.
Viktor (2003-04-30 18:46:00) [4]>koks
Если не очень большая, может вышлешь?
koks (2003-04-30 12:18:00) [5]Рисунки в Access хранятся в "поле объекта OLE".
У меня есть рабочая база (демосы к QuantumGrid4). Там как раз использиутся ADO->JET4->Access2000. База с картинками.
Kuusiniemi (2003-04-30 11:06:00) [6]MEMO в Access - 64k и не больше.
KoluChi (2003-04-30 10:09:00) [7]2Johnmen © (30.04.03 09:16)
Не-а, BLOB - поле объекта OLE
Johnmen (2003-04-30 09:16:00) [8]MEMO и есть аналог BLOB...:)
Viktor (2003-04-30 07:18:00) [9]Текстовый
поле MEMO
Числовой
Дата/Время
Денежный
Счетчик
Логический
Поле объекта OLE
Гиперссылка
Johnmen (2003-04-30 00:11:00) [10]>Viktor (30.04.03 00:05)
>В MS Access нет такого типа поля
А какой есть ?
Viktor (2003-04-30 00:05:00) [11]В MS Access нет такого типа поля
Может это для таблиц Paradox?
Какие еще могут быть варианты?
KoluChi (2003-04-29 13:45:00) [12]Можно с оставить DBImage, только проверьте что он ссылается на поле типа BLOB.
KoluChi (2003-04-29 13:40:00) [13]Пустая запись - вот и ругается.
Лучше использовать просто Image или другой не DB конпонент и записывать туда поток с картинкой.
Сложностей нет никаких. Обычная работа с BLOB. Посмотрите faq.
Добавлять примерно так:
function PictAdd(FileName: String): Boolean;
var
ArcName: String;
BS: TADOBLOBStream;
FS: TFileStream;
begin
Result := false;
ArcName := ExtractFileName(FileName);
with q_PICT_ADD do
begin
Close();
FS := TFileStream.Create(FileName, fmOpenRead + fmShareDenyNone);
FS.Position := 0;
Parameters.ParamByName("FILE_NAME").Value := ArcName;
Parameters.ParamByName("IMJ").LoadFromStream(FS, ftBLOB)
ExecSQL();
Close();
FS.Free();
Result := true;
end;
end;
Только в Query нужно написать запрос на добавление с параметрами.
Viktor (2003-04-29 13:12:00) [14]Что, никто с этим не работал?
Очень надо.
Заранее спасибо за любой ответ или ссылку