|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
Тип Image в MS SQL
Доброго времени суток!
Дали задание автоматизировать библиотеку института. При выполнении задания столкнулся с проблемой. Я создал в MS SQL 2008 таблицу посетителей библиотеки, одному из полей таблицы присвоил тип Image (для хранения фотографии). Подскажите, как теперь туда закидывать изображения? И как (уже при использовании программы), выбирая одну из строк в Grid'e, у меня (например, используя компонент Image) выводилась фотография читателя? Заранее благодрен! |
#2
|
|||
|
|||
я использовал тип BLOB для хранения картинок.
Загрузка выполняется путем вызова методов LoadFromFile/LoadFromStream у поля. В TImage потом загружается "руками" опять же через SaveToStream. Почему использовал BLOB - что бы хранить в БД картинки в виде JPEG, т.к. если пользоваться стандартным компонентом TImage, то дельфи норовит хранить их как Bitmap. |
#3
|
|||
|
|||
Цитата:
lmikle, если Вас не затруднит, не могли бы Вы написать код, как это надо реализовать...так как с потоками не работал! Буду очень признателен! |
#4
|
||||
|
||||
Ну вот так я писал как-то в блоб на MSSQL:
Код:
TBlobField(AdoQuery1.FieldByName('Photo')).LoadFromFile(OpenDialog1.Files.Strings[i]); Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#5
|
|||
|
|||
Код:
var Stream: TFileStream; begin Stream := TFileStream.Create('Temp.jpg', fmCreate); TBlobField(Table.FieldByName('Photo')).SaveToStream(Stream); Stream.Free; Image1.Picture.LoadFromFile('Temp.jpg'); DeleteFile('Temp.jpg'); end; |
#6
|
|||
|
|||
А класс TBlobField в коде необходимо определять (TBlobField = class(TField))?
|
#7
|
||||
|
||||
Нет, это уже предопределенный класс со своими методами в DB.
Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |