Использование типа Image в SQL Server
От: Горюшин Сергей Александрович Россия  
Дата: 14.11.01 11:07
Оценка:
Подскажите, пожалуйста, как грамотно загнать картинку в БД, в поле с типом image и считать ее оттуда в приложение для показа. Используется клиент на С++, ODBC, возможно использование MFC
Инженер — программист ЗАО "ПИК-Зебра"
Re: Использование типа Image в SQL Server
От: retalik www.airbandits.com/
Дата: 15.11.01 11:36
Оценка:
Здравствуйте Горюшин Сергей Александрович, Вы писали:

ГСА>Подскажите, пожалуйста, как грамотно загнать картинку в БД, в поле с типом image и считать ее оттуда в приложение для показа. Используется клиент на С++, ODBC, возможно использование MFC

Какая БД-то? В общем случае, можно весь файл картинки хранить в поле формата LONG RAW. При считывании получать его в память, потом делать CreateStreamOnHGlobal и OleLoadPicture. Показывать с помощью IPicture::Render.
Работает с JPG/PNG/GIF/TIFF и всем, что IE понимает...
Успехов,
Виталий.
Re[2]: Использование типа Image в SQL Server
От: Аноним  
Дата: 15.11.01 11:53
Оценка:
Здравствуйте retalik, Вы писали:

R>Здравствуйте Горюшин Сергей Александрович, Вы писали:


ГСА>>Подскажите, пожалуйста, как грамотно загнать картинку в БД, в поле с типом image и считать ее оттуда в приложение для показа. Используется клиент на С++, ODBC, возможно использование MFC

R>Какая БД-то? В общем случае, можно весь файл картинки хранить в поле формата LONG RAW. При считывании получать его в память, потом делать CreateStreamOnHGlobal и OleLoadPicture. Показывать с помощью IPicture::Render.
R>Работает с JPG/PNG/GIF/TIFF и всем, что IE понимает...

Большое спасибо за совет. Только, что значит, что за БД? SQL Server 2000. Там вроде нет такого типа как LONG RAW. И с помощью чего его туда и оттуда считывать, если можно поконкретней, это самое важное!? (Нужно хранить фотографии домов, возможно больших объемов) :о) Заранее благодарен!
Re[3]: Использование типа Image в SQL Server
От: Горюшин Сергей Александрович Россия  
Дата: 15.11.01 11:59
Оценка:
P.S. Там есть тип поля Image, для хранения двоичной информации, я его и выбрал!
Инженер — программист ЗАО "ПИК-Зебра"
Re[3]: Использование типа Image в SQL Server
От: retalik www.airbandits.com/
Дата: 15.11.01 12:10
Оценка: 3 (1)
Здравствуйте Аноним, Вы писали:

ГСА>>>Подскажите, пожалуйста, как грамотно загнать картинку в БД, в поле с типом image и считать ее оттуда в приложение для показа. Используется клиент на С++, ODBC, возможно использование MFC

R>>Какая БД-то? В общем случае, можно весь файл картинки хранить в поле формата LONG RAW. При считывании получать его в память, потом делать CreateStreamOnHGlobal и OleLoadPicture. Показывать с помощью IPicture::Render.
R>>Работает с JPG/PNG/GIF/TIFF и всем, что IE понимает...

А>Большое спасибо за совет. Только, что значит, что за БД? SQL Server 2000.


Понятно. Тогда image — самое то. Если картинки большие, их надо разумно жать JPEG'ом.

А>Там вроде нет такого типа как LONG RAW. И с помощью чего его туда и оттуда считывать, если можно поконкретней, это самое важное!? (Нужно хранить фотографии домов, возможно больших объемов) :о) Заранее благодарен!


Просить это поле в запросе, получать его через CRecordset::GetFieldValue() в виде CLongBinary. В этом объекте m_hData уже содержит искомый HGLOBAL.
Успехов,
Виталий.
Re[4]: Использование типа Image в SQL Server
От: Горюшин Сергей Александрович Россия  
Дата: 15.11.01 12:24
Оценка:
Здравствуйте retalik, Вы писали:

R>Здравствуйте Аноним, Вы писали:


ГСА>>>>Подскажите, пожалуйста, как грамотно загнать картинку в БД, в поле с типом image и считать ее оттуда в приложение для показа. Используется клиент на С++, ODBC, возможно использование MFC

R>>>Какая БД-то? В общем случае, можно весь файл картинки хранить в поле формата LONG RAW. При считывании получать его в память, потом делать CreateStreamOnHGlobal и OleLoadPicture. Показывать с помощью IPicture::Render.
R>>>Работает с JPG/PNG/GIF/TIFF и всем, что IE понимает...

А>>Большое спасибо за совет. Только, что значит, что за БД? SQL Server 2000.


R>Понятно. Тогда image — самое то. Если картинки большие, их надо разумно жать JPEG'ом.


А>>Там вроде нет такого типа как LONG RAW. И с помощью чего его туда и оттуда считывать, если можно поконкретней, это самое важное!? (Нужно хранить фотографии домов, возможно больших объемов) :о) Заранее благодарен!


R>Просить это поле в запросе, получать его через CRecordset::GetFieldValue() в виде CLongBinary. В этом объекте m_hData уже содержит искомый HGLOBAL.


Клево, спасибо за информацию. Очень помогли!
Инженер — программист ЗАО "ПИК-Зебра"
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.