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

Вниз

Поля BLOB в базе INTERBASE   Найти похожие ветки 

 
harismatik   (2002-01-15 13:38) [0]

Мэтры баз данных!!!
Обращаюсь к вам за помощью. Проблема такая:
Есть база на Интербейзе. я хочу хранить в одной из таблиц графическуб информацию (фотографии). Для этого при создании таблицы создаю поле типа BLOB. Но как под Дельфой в него загнать нужную информацию?


 
Romkin ©   (2002-01-15 13:41) [1]

Проще всего через TMemoryStream|TFileStream - загоняешь данные в поток, а поле TBLOBField.LoadFromStream. Ловушка - после закачки данных в поток не забыть установить позицию в его начало. Ну и ессно Edit/Post у таблицы


 
harismatik   (2002-01-15 13:53) [2]

2Romkin
А можно поподробнее? Я ничего не понял.
Можно кусок кода посмотреть?


 
Delirium ©   (2002-01-15 14:01) [3]

А если так:

Query1.Edit;
TBLOBField(Query1.FieldByName("myField")).LoadFromFile("c:\test.bmp");
Query1.Post;


 
harismatik   (2002-01-15 14:13) [4]

Все равно не понял.
Это что же, кроме компонента TTable еще и TQuery ставить в проект придется? а какой текст в него зашивать в параметр SQL? И с чем его связывать?
И как потом содержимое этого поля в TImage загнать?


 
Delirium ©   (2002-01-15 14:22) [5]

>harismatik

Ну ты уже совсем /8)

Какая разница в приведёном примере: TQuery там или TTable, или ещё что TDataSet совместимое? Если для тебя это так сложно, используй TDBImage - это то, что тебя спасёт :)


 
Digitman ©   (2002-01-15 14:44) [6]

>harismatik
Ну причем здесь TQuery-то ?
У любого наследника TDataSet есть св-во - коллекция TFields, в которой для поля типа BLOb существует объект класса TBLOBField. А у класса TBLOBField есть, к примеру, метод LoadFromFile, коим тебе и посоветовал воспользоваться <Delirium>.
Что же касается TImage, то у него усть св-во TPicture, у которого есть св-во TBitmap, у которого есть, к примеру, метод SaveToStream, позволяющий сохранить растровый образ картинки в предварительно подготовленный тобой объект-поток. А у любого потомка TBLObField есть метод LoadFromStream, с помощью которого твой поток, содержащий загруженную из TImage.Picture.Bitmap битовый образ картинки, можно загрузить в BLOb-поле. Неужели это так трудно сообразить, "погуляв" целенаправленно 5 минут по Delphi help ?? Там ведь все есть ! И примеры в т.ч. !!


 
harismatik   (2002-01-15 15:11) [7]

Ну хорошо. Сохранить в базе картинку мне удалось.
Как теперь при нажатии на кнопку вывести в TImage эту картинку из базы? Если можно, то код пожалуйста.

PS 2Digitman Только не бейте сильно. Ламер я в этом деле, а заказ от шефа срочный.


 
Romkin ©   (2002-01-15 15:13) [8]

Кстати, при работе с sql серверами TTable не применяется, работать надо только через TQuery
А выводить - в обратном порядке, тоже через поток рекомендую.
И с IB6 надо бы использовать IBX


 
harismatik   (2002-01-15 15:25) [9]

> А выводить - в обратном порядке, тоже через поток рекомендую.

А как все же выводить?


 
Delirium ©   (2002-01-15 15:29) [10]

Ты достал! Читай хелп!
Господин Модератор, убейте вы эту ветку!



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

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

Наверх




Память: 0.49 MB
Время: 0.01 c
1-32247
OGR
2002-01-28 00:13
2002.02.11
Как в TMemo1 удалять все строки начинающиеся с #


14-32337
vajo
2001-12-21 09:09
2002.02.11
Тестирование компьютера.


1-32253
XX
2002-01-28 11:24
2002.02.11
Webbrowser - помогите


4-32381
_SnAke_
2001-12-08 16:00
2002.02.11
SystemTray


1-32277
Vasya_dvc
2002-01-28 16:42
2002.02.11
Подключение своего шрифта к программе