Форум: "Базы";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.02.07;
Скачать: [xml.tar.bz2];




Вниз

Вопрос для реальных знатоков: BLOB -> Oracle <= 32 K? 


MEgo   (2002-01-08 17:48) [0]

Сия проблема польностью завела меня в тупик!.
___Имеется:
Delphi 50, Oracle 8.0.6, таблица с одним LONG RAW полем
___Вопрос:
Почему при ClientDataSet.CommandText="insert into table values (:BLOB)" все вставляется нормально
, а при ClientDataSet.CommandText="begin insert into table values (:BLOB); end;" если BLOB больше 32K, то выдается ошибка ORA-01460 Unimplemented or unreasonable conversion required?

(в обоих случаях использовалось Parameters[0].LoasdFromStream(AStream, ftBlob))

как это можно побороть? Использование ClientDataSet.CommandText необходимо :((
(begin-end в СommandText нужен для запуска хранимой оракловой процедуры,
которая реализует более сложный алгоритм сохранения...)



уважаемые Знатоки! помогите плиз, а то мне тапки!



Desdechado   (2002-01-09 11:10) [1]

проверь в БДЕ-настройках своего драйвера BLOB SIZE. Он по умолчанию 32К. Поставь сколько надо, прочитав справку.



Sly   (2002-01-09 14:43) [2]

Естественно в PL/SQL размер данных типа LONG (LONG RAW) ограниченно 32К. ‘insert into table...’ воспринимается как SQL предложение, а "begin .. end;"- PL/SQL блок. Выход, либо использовать тип данных BLOB (Oracle8), либо не использовать PL/SQL блоки.



Kasper   (2002-01-09 16:29) [3]

Вариант не проверял, но думаю стоит попробывать

ClientDataSet.CommandText="select * from Table where IDField="blabla"";
ClientDataSet.Open;
ClientDataSet.Edit;
(ClientDataSet.FieldByName("BlobField") as TBlobField).LoadFromStream ...;
ClientDataSet.Post;





Форум: "Базы";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.02.07;
Скачать: [xml.tar.bz2];




Наверх





Память: 0.72 MB
Время: 0.031 c
14-18963          VEG                   2001-12-15 21:35  2002.02.07  
Проблема при разработке графического компонента.


3-18746           sasa_ch               2002-01-09 09:55  2002.02.07  
PLS


3-18707           amamed_3071           2002-01-09 16:53  2002.02.07  
Error loading Midas.dll (Win98)


1-18787           Dmitriy_R             2002-01-21 14:11  2002.02.07  
Как проще сделать что-бы отображать число 1 в виде 01


1-18792           IronHawk              2002-01-24 13:11  2002.02.07  
Приветствую! Прошу помощи о многоуважаемые Мастера.