Форум: "Базы";
Текущий архив: 2004.07.25;
Скачать: [xml.tar.bz2];
ВнизКак мне в БД Оракл записать bmp-файл, в BLOB поле Найти похожие ветки
← →
Relaxxx (2004-07-01 13:22) [0]Подскажите как записать изображение в БД Оракл, у меня для этого выделено поле типа BLOB, тоесть в поле должна хранится сама картинка, но как ее средствами Делфи туда запихнуть я не понял!!
Подскажите!
← →
Курдль © (2004-07-01 13:26) [1]Легко! Картинку - в поток, поток - в BLOB
← →
Reindeer Moss Eater © (2004-07-01 13:26) [2]А используемая тобой библиотека доступа поддерживает вообще оракловый тип BLOB ?
← →
Relaxxx (2004-07-01 13:32) [3]я использую ODAC, а как мне превратить картинку в поток, можно немного поподробней?
← →
Reindeer Moss Eater © (2004-07-01 13:33) [4]метод LoadFromFile
← →
Курдль © (2004-07-01 13:34) [5]TBLOBField.SaveToStream/LoadFromStream + F1
← →
Reindeer Moss Eater © (2004-07-01 13:37) [6]Человек не догадывается, что есть папка Demos, в которой есть папка BlobPictures.
← →
Relaxxx (2004-07-01 15:07) [7]Все равно я полностью не догнал, в демке делается через процедуру, тоесть в Оракле создается процедура, а мне она не нужна. я хочу сделать просто запросом, я сделал так
SqlQ.Close;
SqlQ.SQL.Clear;
SqlQ.SQL.Add("UPDATE MONEY.HHHH SET RAB_PHOTO=:Pic WHERE key_pole=631");
SqlQ.ParamByName("Pic").ParamType := ptInput;
SqlQ.ParamByName("Pic").AsOraBlob.LoadFromFile(FileName);
SqlQ.Execute;
Но мне пишет ошибку: ORA-01403 данных не найдено.
В чем я неправ???
← →
Reindeer Moss Eater © (2004-07-01 15:09) [8]В демке не делается через процедуру.
← →
Соловьев © (2004-07-01 15:12) [9]
> WHERE key_pole=631");
а есть такое?
← →
Relaxxx (2004-07-01 15:14) [10]Key_pole такое есть 100процентов, а нащет демки так там сделано через вот такую процедуру
CREATE OR REPLACE
PROCEDURE ODAC_BLOB_Insert (
p_ID NUMBER,
p_Title VARCHAR2,
p_Pic OUT BLOB
)
is
begin
INSERT INTO ODAC_BLOB(ID, Title, Pic)
VALUES (p_ID, p_Title, EMPTY_BLOB())
RETURNING Pic
INTO p_Pic;
end;
/
← →
Relaxxx (2004-07-01 15:22) [11]Даже демка которая идет месте с ОДАК пишет почти тоже самое:
OCI_NO_DATA
← →
Relaxxx (2004-07-01 15:30) [12]Странное дело, у меня или OCI загнулся или я незнаю, если я использую Net в ODAC все работает без проблем?!!?
← →
Reindeer Moss Eater © (2004-07-01 15:49) [13]В демке экземпляр TSmartQuery (имя у него Query).
Наточен на таблицу (не на процедуру) ODAC_BLOB
Загрузка картинки идет через него (в том числе через него)
Чего еще надо?
Что еще не понятно?
← →
Relaxxx (2004-07-01 15:55) [14]У меня даже демка не работает, вернее работает только когда включена опция NET, а так пишет OCI_NO_DATA, почему?
← →
Reindeer Moss Eater © (2004-07-01 15:57) [15]Потому что клиент Оракла не установлен/испорчен
← →
Relaxxx (2004-07-01 16:01) [16]Врятли, все приложения работают без проблем, а вот это нет
← →
Relaxxx (2004-07-01 16:01) [17]Врятли, все приложения работают без проблем, а вот это нет
← →
Relaxxx (2004-07-01 16:39) [18]Ладно, я так понял с БЛОБОМ тут проблемы, и так быстро и просто не разобраться. Тогда может подскажите(желательно кусочком кода) как в поле LONG RAW?
← →
Reindeer Moss Eater © (2004-07-01 16:47) [19]SQL.TEXT := "insert into mytable(mylongrawfield) values (:blob_body)";
ParamByName("blob_body").LoadFromFile(.....)
← →
Relaxxx (2004-07-01 17:34) [20]Спасибо, все работает, но когда я пытаюсь сделать апдейт
SqlQ.SQL.Add("UPDATE MONEY.MMM SET PHOTO=:Pic");
SqlQ.ParamByName("Pic").LoadFromFile("c:\1.bmp", ftBlob);
почему-то выскакивает ошибка AccesViolation в модуле ORA805.dll
← →
Relaxxx (2004-07-01 17:44) [21]запрос незахотел работать сразу для всех записей
← →
Reindeer Moss Eater © (2004-07-01 17:51) [22][15]
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2004.07.25;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.032 c