powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / insert blob Oracle + ADO
14 сообщений из 14, страница 1 из 1
insert blob Oracle + ADO
    #39451180
Polaris2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Друзья, очень нужна помощь. В проекте необходимо реализовать запись больших файлов в blob. С interbase проблем нет. С маленькими файлами - тоже. Но большие...
Вопрос в интернете уже поднимался, но... не работает. Записывать нужно не с помощью ХП, а своим insertом. Делаю примерно так:
Код: plaintext
1.
2.
3.
4.
5.
ADOQuery->SQL->text = "insert into table1 (key, file) values (key_gen.nextval,  empty_blob()) returning file into :file";
ADOQuery->Parameters->ParamByName(file)->DataType = ftBlob;
ADOQuery->Parameters->ParamByName(file)->Direction = pdInput;
ADOQuery->Parameters->ParamByName(file)->LoadFromFile(Path, ftBlob);
ADOQuery->ExecSQL();


Ошибка: ORA-00439: не задействована функциональная возможность: Returning clause from this client type.
Обычный insert без returninga работает с большими файлами через dbExpress, но нужен обязательно ADO!

P.s. Заранее прошу прощения, если не соблюдены правила оформления или описания проблемы. Пишу первый раз, да ещё и с телефона.
...
Рейтинг: 0 / 0
insert blob Oracle + ADO
    #39451208
AnSi_Sr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Polaris2000Обычный insert без returninga работает с большими файлами через dbExpress, но нужен обязательно ADO!

Что этот тезис означает?
...
Рейтинг: 0 / 0
insert blob Oracle + ADO
    #39451212
Polaris2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Среда разработки RADStudio2009. Используя палитру dbExpress и запрос вида
Код: plsql
1.
ADOQuery->SQL->text = "insert into table1 (key, file) values (key_gen.nextval,  :file)


файлы записываются.
...
Рейтинг: 0 / 0
insert blob Oracle + ADO
    #39451213
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Polaris2000,

Какой смысл создавать параметр ADO с направлением Input, загружать в него данные, чтобы потом вернуть в него же пустой lob из результата запроса?
...
Рейтинг: 0 / 0
insert blob Oracle + ADO
    #39451230
Polaris2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я не специализируюсь на oracle и запросы с returning тоже ранее не использовал. Но все форумы и статьи по данной проблеме сводились к подобной конструкции. Может это и не верное направление, но сделано "по мотивам" других ответов. Но раз не работает, значит смысла действительно не много.
...
Рейтинг: 0 / 0
insert blob Oracle + ADO
    #39451250
Polaris2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если выполнить код
Код: plaintext
1.
2.
3.
ADOQuery->SQL->text = "insert into table1 (key, file) values (key_gen.nextval, :file)";
ADOQuery->Parameters->ParamByName(file)->LoadFromFile(Path, ftBlob);
ADOQuery->ExecSQL();


с маленькими файлами - все отлично, с большими - "ORA-01460: затребовано не реализованное или не разумное преобразование".
...
Рейтинг: 0 / 0
insert blob Oracle + ADO
    #39451256
AnSi_Sr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Polaris2000Но все форумы и статьи по данной проблеме сводились к подобной конструкции.
В тех статьях и форумах речь идет о том, что в старых версиях oracle генерируется ошибка "ORA-00439: feature not enabled" при использовании insert с returning_clause (появилось в более поздних версиях), а также, что для некоторых компонентов/oledb-провайдеров некорректно определяется версия клиента/сервера, что также приводит к генерации подобной ошибки.

А в чем исходный вопрос?
...
Рейтинг: 0 / 0
insert blob Oracle + ADO
    #39451261
Polaris2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вопрос: как в Oracle11 записать данные в blob, если их размер ~десятки МБ. Использовать обязательно ADO.
...
Рейтинг: 0 / 0
insert blob Oracle + ADO
    #39451301
AnSi_Sr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
строка для поиска в гугле: attempting to pass a string to a bind variable value in excess of 4000 bytes can result in an ORA-01460
например, обновить odp.net
...
Рейтинг: 0 / 0
insert blob Oracle + ADO
    #39451327
Polaris2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AnSi_Sr,

Правильно ли я понял по указанным вами ссылкам, что проблема либо в структуре БД (у меня нельзя менять, да и через другие компоненты работает), либо в драйвере и его надо обновить. Но ADOConnection предлагает 2 драйвера: Oracle provider for OLE DB и Microsoft OLE DB Provider for oracle. Какой бы я не выбрал, подключение нормальное, а ошибки на больших файлах одинаковые. Значит дело не в драйвере. Или вывод неверный?
...
Рейтинг: 0 / 0
insert blob Oracle + ADO
    #39451331
ma1tus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Polaris2000Oracle provider for OLE DB 1707697
...
Рейтинг: 0 / 0
insert blob Oracle + ADO
    #39451359
Polaris2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ma1tus,

Сделал как Lazy cat. При выполнении selecta - ошибка (Тип данных не поддерживается), если в запросе поле blob.
...
Рейтинг: 0 / 0
insert blob Oracle + ADO
    #39451374
ma1tus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Polaris2000Тип данных не поддерживаетсяобоими провайдерами?
...
Рейтинг: 0 / 0
insert blob Oracle + ADO
    #39451601
Polaris2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрался до другого компьютера, ошибка только с Microsoft OLE DB Provider. Или версия другая или установлен криво. С Oracle provider for OLE DB заработало:
Код: plaintext
1.
ADOQuery->SQL->text = "insert into table1 (key, file) values (key_gen.nextval,  :file)


Всем спасибо за ответы.
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / insert blob Oracle + ADO
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]