Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2005.06.14;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.48 MB
Время: 0.041 c
3-1115204989
InVariantian
2005-05-04 15:09
2005.06.14
Для общей эрудиции


3-1115819862
_e_u_
2005-05-11 17:57
2005.06.14
добавить запись в поле типа текст


3-1115801084
Vadim X
2005-05-11 12:44
2005.06.14
Как получить ???


1-1117089247
Scorpio
2005-05-26 10:34
2005.06.14
Жуткие тормоза при отправке данных в Excel


3-1115389297
Karburator
2005-05-06 18:21
2005.06.14
(SQL) integer в дату





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский