Главная страница
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.028 c
14-1116742429
lookin
2005-05-22 10:13
2005.06.14
Финал кубка Англии


1-1117529916
voron
2005-05-31 12:58
2005.06.14
математика


1-1117346805
ProGamer
2005-05-29 10:06
2005.06.14
Ламерский вопрос по fsUnderLine


14-1116491813
Skier
2005-05-19 12:36
2005.06.14
Опять новая концепция развития нашего автопрома...


3-1115789288
kyn66
2005-05-11 09:28
2005.06.14
Кто реально работает с базами Access, отзовитесь...