Oracle 9i и BLOB

 
0
 
Oracle
ava
Darked | 18.05.2004, 11:48
Привет, всем. Народ, подскажите пожалуйста, как мне из Oracle вытащить BLOB'ный файл через OCI. Мне нужно вытащить фотографию и вывести ее ( но вывести я сам постараюсь ; )) Как мне вытащить ее???
Очень нужно!!! просто горю ;(
Comments (7)
ava
Kesh | 18.05.2004, 12:01 #
Делал я такое через 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. Конечно это все сумбурно и непонятно... Будут вопросы - спрашивай... Нужен пример - давай мыло...
ava
AntonSaburov | 18.05.2004, 12:41 #
Цитата
Делал я такое через ODAC...

Причем тут ODAC - человек спрашивает про OCI. Oracle Call Interface.
ava
Kesh | 18.05.2004, 13:13 #
AntonSaburov, извини, я не профессионал... я думал, что ODAC и работает через OCI... Просто хотелось объяснить человеку как можно проще...
ava
Darked | 18.05.2004, 13:21 #
Честно не особо понял. Я с SQL не знаком ; ((( Я вообще - то пишу на Builder C++ 5, но хочу пока не далеко ушел переписать на Visual C++. Хотелось бы обстоятельней, если не сложно, пообщаться по мылу.
Вот мое: [email protected]
Буду рад любой помощи.
added later:
А есть люди, которые мне могут помочь с OCI ?
added later:
Или жизнь не сталкивала с Oralce и OCI ?????
ava
Kesh | 18.05.2004, 19:33 #
Поясни, тебя интересует именно Oracle Call Interface, или общае вопросы по работе с Oracle?
ava
Darked | 18.05.2004, 21:45 #
Как я уже написал, мне нужно через OCI вытянуть с БД Oracle 9i BLOB'ный файл. С SQL дела не имел ; ((((
ava
Medved | 18.05.2004, 22:15 #
А вот надо иметь. Только через SQL и вытащите эти данные. А как данные вытаскивать из блоб-поля, это уже для каждого языка своя реализация. Как на Delphi и BСB - Kesh вам уже подсказал. Как на VC - постите вопрос в соответствующий раздел.
Please register or login to write.
Firm of day
Вы также можете добавить свою фирму в каталог IT-фирм, и публиковать статьи, новости, вакансии и другую информацию от имени фирмы.
Подробнее
Contributors
advanced
Submit