Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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;





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

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

Наверх




Память: 0.44 MB
Время: 0.005 c
14-18989
модератор
2001-12-17 21:08
2002.02.07
Просьба обращать внимание на тему конференции.


1-18864
VID
2002-01-22 11:43
2002.02.07
Передача и ПОЛУЧЕНИЕ команд от одной проги к другой.


7-19000
Lizard
2001-10-30 20:34
2002.02.07
Как перехватить сообщения об ошибках типа Autefication failed и т.д. при отправке письма ?


1-18842
PEC
2002-01-22 11:00
2002.02.07
автозапуск.


1-18850
Starkom
2002-01-22 13:39
2002.02.07
помогите с проблемой





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский