Модераторы: LSD
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Oracle 9i и BLOB, как оно делается 
:(
    Опции темы
Darked
Дата 18.5.2004, 10:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 536
Регистрация: 26.2.2004
Где: Южный Урал

Репутация: нет
Всего: нет



Привет, всем. Народ, подскажите пожалуйста, как мне из Oracle вытащить BLOB'ный файл через OCI. Мне нужно вытащить фотографию и вывести ее ( но вывести я сам постараюсь ; )) Как мне вытащить ее???
Очень нужно!!! просто горю ;(


--------------------
Veni, Vidi, Vici !!!
PM MAIL ICQ   Вверх
Kesh
Дата 18.5.2004, 12:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Эксперт
Сообщений: 2488
Регистрация: 31.7.2002
Где: Германия, Saarbrü cken

Репутация: нет
Всего: 54



Делал я такое через ODAC...

Допустим у тебя есть таблица

SQL
create table tbl_People (
id number not null primary key,
surname varchar2(30) not null,
name varchar2(30) not null,
photo BLOB)

У тебя на форме есть компонент TDBImage нацеленный на этот самый BLOB. Тогда Select будет выглядеть так:
SQL
select * from tbl_people order by Surname, Name

INSERT
SQL
BEGIN SELECT SEQ_PEOPLE.NEXTVAL INTO :ID FROM DUAL; INSERT INTO tbl_people (ID, SURNAME, NAME, PHOTO)
VALUES
(:ID, :SURNAME, :NAME, EMPTY_BLOB())
RETURNING PHOTO
INTO :PHOTO; END;

Да, SEQ_PEOPLE - последовательность...


UPDATE
SQL
UPDATE tbl_people
SET
ID = :ID,
SURNAME = :SURNAME,
NAME = :NAME,
PHOTO = EMPTY_BLOB()
WHERE ID = :OLD_ID
RETURNING PHOTO
INTO :PHOTO


А теперь самое интересное... Загрузка картинки из внешней bmp-шки... (PhotoDialog: TOpenPictureDialog, qryPeople: TOraQuery)
Код
 PhotoDialog.InitialDir := '.';
 if qryPeople.Active and PhotoDialog.Execute
   then
     begin
       if qryPeople.State = dsBrowse then qryPeople.Edit;
       TBlobField(qryPeople.FieldByName('PHOTO')).LoadFromFile(PhotoDialog.FileName);
     end;


Ну и очистка картинки...
Код
 if qryPeople.State = dsBrowse then qryPeople.Edit;
 TBlobField(qryPeople.FieldByName('PHOTO')).Clear;



P.S. Конечно это все сумбурно и непонятно... Будут вопросы - спрашивай... Нужен пример - давай мыло...


--------------------
user posted image
PM MAIL WWW ICQ Skype   Вверх
AntonSaburov
Дата 18.5.2004, 12:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Штурман
****


Профиль
Группа: Модератор
Сообщений: 5658
Регистрация: 2.7.2002
Где: Санкт-Петербург

Репутация: 1
Всего: 118



Цитата
Делал я такое через ODAC...

Причем тут ODAC - человек спрашивает про OCI. Oracle Call Interface.

PM MAIL WWW ICQ   Вверх
Kesh
Дата 18.5.2004, 13:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Эксперт
Сообщений: 2488
Регистрация: 31.7.2002
Где: Германия, Saarbrü cken

Репутация: нет
Всего: 54



AntonSaburov, извини, я не профессионал... я думал, что ODAC и работает через OCI... Просто хотелось объяснить человеку как можно проще...



--------------------
user posted image
PM MAIL WWW ICQ Skype   Вверх
Darked
Дата 18.5.2004, 13:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 536
Регистрация: 26.2.2004
Где: Южный Урал

Репутация: нет
Всего: нет



Честно не особо понял. Я с SQL не знаком ; ((( Я вообще - то пишу на Builder C++ 5, но хочу пока не далеко ушел переписать на Visual C++. Хотелось бы обстоятельней, если не сложно, пообщаться по мылу.
Вот мое: [email protected]
Буду рад любой помощи.
Добавлено @ 13:23
А есть люди, которые мне могут помочь с OCI ?
Добавлено @ 13:26
Или жизнь не сталкивала с Oralce и OCI ?????


--------------------
Veni, Vidi, Vici !!!
PM MAIL ICQ   Вверх
Kesh
Дата 18.5.2004, 19:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Эксперт
Сообщений: 2488
Регистрация: 31.7.2002
Где: Германия, Saarbrü cken

Репутация: нет
Всего: 54



Поясни, тебя интересует именно Oracle Call Interface, или общае вопросы по работе с Oracle?


--------------------
user posted image
PM MAIL WWW ICQ Skype   Вверх
Darked
Дата 18.5.2004, 21:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 536
Регистрация: 26.2.2004
Где: Южный Урал

Репутация: нет
Всего: нет



Как я уже написал, мне нужно через OCI вытянуть с БД Oracle 9i BLOB'ный файл. С SQL дела не имел ; ((((


--------------------
Veni, Vidi, Vici !!!
PM MAIL ICQ   Вверх
Medved
Дата 18.5.2004, 22:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 7209
Регистрация: 15.9.2002
Где: Kazakhstan, Astan a

Репутация: 1
Всего: 154



А вот надо иметь. Только через SQL и вытащите эти данные. А как данные вытаскивать из блоб-поля, это уже для каждого языка своя реализация. Как на Delphi и BСB - Kesh вам уже подсказал. Как на VC - постите вопрос в соответствующий раздел.


--------------------
http://extreme.sport-express.ru/
...и неважно сколько падал, важно сколько ты вставал...
PM MAIL WWW ICQ Skype GTalk   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Oracle"
Zloxa
LSD

Данный раздел предназначен для обсуждения проблем с Oracle Database, другие продукты Oracle здесь не обсуждаются. Просьба при создании темы, придерживаться следующих правил:

  • при создании темы давайте ей осмысленное название, описывающее суть проблемы
  • указывайте используемую версию базы, способ соединения и язык программирования
  • при ошибках обязательно приводите код ошибки и сообщение сервера
  • приводите код в котором возникла ошибка, по возможности дайте тестовый пример демонстрирующий ошибку
  • при вставке кода используйте соответсвующие теги: [code=sql] [/code] для подсветки SQL и PL/SQL кода, [code=java] [/code] - для Java, и т.д.

  • документация по Oracle: 9i, 10g, 11g
  • книги по Oracle можно поискать здесь
  • действия модераторов можно обсудить здесь

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Zloxa, LSD.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Oracle | Следующая тема »


 




[ Время генерации скрипта: 0.0503 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.