Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.06.14;
Скачать: CL | DM;

Вниз

Как в базу данных поместить картинку?   Найти похожие ветки 

 
pavel_guzhanov ©   (2005-05-04 17:03) [0]

Имеется база данных MS SQL Server. В ней имеется таблица, в которую надо помещать изображения (фото). В таблице имеется поле типа Image . Раньше мне такого делать не приходилось, поэтому прошу помощи. Как поместить картинку в это поле, можно ли это сделать с помощью ADOQuery? Если можно, то как это сделать? Всмысле как картинку поместить в запрос? Прошу, не ругайте за стиль вопроса, не знаю, как это сформулировать более грамотно:-))


 
LineSoft ©   (2005-05-04 17:10) [1]

Почитайте о BLOB


 
Fay ©   (2005-05-04 17:11) [2]

if object_id("TEST") is not null drop table TEST
go
create table TEST(
ID int not null identity(1, 1),
PICT image null,
constraint PK_TEST primary key clustered(ID)
)
go
insert into TEST(PICT) values(0x123123)
select * from TEST


 
Johnmen ©   (2005-05-04 17:14) [3]

Параметрический запрос. Потом
...ParamByName("MyImageField").LoadFromStream(MyMemoryStream,ftBlob); в стриме - твоя картинка.
Ключевые слова для F1: TStream(TMemoryStream), TBlobField, TParameters


 
pavel_guzhanov ©   (2005-05-04 17:17) [4]

>insert into TEST(PICT) values(0x123123)

А что такое 0x123123?


 
pavel_guzhanov ©   (2005-05-04 17:21) [5]

>Johnmen ©   (04.05.05 17:14) [3]//
попробую. Только уже завтра, а то рабочий день заканчивается:-)


 
Fay ©   (2005-05-04 18:01) [6]

pavel_guzhanov ©   (04.05.05 17:17) [4]
Шестнадцатиричное представление данных.


 
sniknik ©   (2005-05-04 18:12) [7]

> Шестнадцатиричное представление данных.
по сетке будем вдвое больше посылать чем картинка "весит", зачем?


 
Fay ©   (2005-05-04 18:39) [8]

2 sniknik ©   (04.05.05 18:12) [7]
1) Это ответ на вопрос "Всмысле как картинку поместить в запрос?"
2) Иногда надо.


 
Anatoly Podgoretsky ©   (2005-05-04 18:40) [9]

sniknik ©   (04.05.05 18:12) [7]
Это в мненонике СИ, поэтому еще расходы на 0x


 
sniknik ©   (2005-05-04 20:11) [10]

при "весе" рисунка скажем в пару мегабайт два байта в расчет можно не принимать, а вот еще дополнительные пару мег. по моему надо, особенно при массовых "посылках"/вставках.

> 2) Иногда надо.
дело хозяйское. но я бы не советовал много данных так отправлять (против небольшого количества ничего против не имею ;).


 
pavel_guzhanov ©   (2005-05-05 10:02) [11]

var JPEGImage:TJPEGImage;
   MemoryStream:TMemoryStream;
   Image:TBlobField;
begin
 MemoryStream:=TMemoryStream.Create;
 JPEGImage:=TJPEGImage.Create;
 // создание переменной типа TBLOBField
 Image:=TBlobField(Image1.Picture);
 // копирование картинки в поток
 Image.SaveToStream(MemoryStream);

на этой строке выдается ошибка "Access violation at address 00000000. Read of address 00000000...."
А как тогда запихнуть картинку в Stream?


 
Johnmen ©   (2005-05-05 10:12) [12]

SaveToStream, есть такой метод :)


 
Mr.F   (2005-05-05 10:14) [13]

Зачекм так сложно.
Просто запихни в поле где должен храниться рисунок путь к этому файлу.
А когда будеш считывать будеш считывать путь к файлу и запускаит его.


 
Johnmen ©   (2005-05-05 10:18) [14]

У него нет файла...:)))


 
Mr.F   (2005-05-05 10:22) [15]

Даа тогда тяжолый случай


 
Val ©   (2005-05-05 10:41) [16]

>[15] Mr.F   (05.05.05 10:22)
у кого?
>pavel_guzhanov ©   (05.05.05 10:02)
фигню вы написали, извините. почитайте-таки о блоб-полях.


 
pavel_guzhanov ©   (2005-05-05 11:06) [17]

>SaveToStream, есть такой метод :)

Так именно на этом методе и появляется ошибка

>Просто запихни в поле где должен храниться рисунок путь к этому файлу.
А когда будеш считывать будеш считывать путь к файлу и запускаит его.


>У него нет файла...:)))

Файл есть на одной машине, с которой его помещают в базу. Но просматривать из базы могут с разных машин, так что путь здесь не прокатит.


 
Johnmen ©   (2005-05-05 11:11) [18]

JPEGImage.SaveToStream


 
pavel_guzhanov ©   (2005-05-05 11:27) [19]

Сделал вот так:
 Image1.picture.Bitmap.SaveToStream(MemoryStream);


Работает:-))
Всем спасибо!



Страницы: 1 вся ветка

Текущий архив: 2005.06.14;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.059 c
14-1116919050
syte_ser78
2005-05-24 11:17
2005.06.14
Отражение зеркала в зеркале.


1-1116932697
liver
2005-05-24 15:04
2005.06.14
Динамические структуры данных


3-1115298176
Alexandr
2005-05-05 17:02
2005.06.14
DbgridEh+FIBPlus


6-1111652610
X-Disa
2005-03-24 11:23
2005.06.14
обработка скрипта в интернете


1-1117141769
Christy
2005-05-27 01:09
2005.06.14
Как скопировать музыкальный файл в дирикторию программы ?