#0
by 1sevgene
Добрый день. Подскажите, пожалуйста, существует ли возможность записать файл (картинку) в BLOB-поле Oracle из 1С 7.7 используя OO4O (Oracle Objects for OLE )? Спасибо.
#3
by 1sevgene
OO4O - Oracle Objects for OLE Создаю объект: Сессия = CreateObject("OracleInProcServer.XOraSession"); и подключаюсь к базе данных Oracle.
#4
by 1sevgene
В смысле Oracle умеет? Так да, он умеет, но в 1С пишет, что тип данных не поддерживается.
#8
by Ковычки
ты же нам рассказал про оо4о, тебе лучче знать может и эту СоздатьОбъект("MSScriptControl.ScriptControl")
#10
by Ковычки
сперва ты про оо4о подробнее, по полочкам лучше с кодом, и не надуманным, а конкретно какой написан, но не более 15 строк
#14
by 1sevgene
Постараюсь объяснить что мне нужно. В теме есть метод ПолучитьBLOB(<ИмяПоля>,<ИмяФайла>). Вот мне нужно наоборот, вставить файл в поле.
#16
by 1sevgene
Скрипт.Execution("BlobFeeld.Value=Stream.Read"): Поле агрегатного объекта не обнаружено (Execution)
#19
by 1sevgene
Спасибо, но не работает. Возможно я напутал что-то с типами параметров. Как это "курсором"?
#21
by Torquader
сначала создаётся курсор (CREATE CURSOR FOR BLOB или как там это пишется). Так. Стоп. А BLOB-поле привязано к записи, а где была создана запись ? Вот Oracle вам и сказал, что не выбрана запись для добавления поля.
#24
by Ковычки
в оракле только умею консоль типа ЕМ скульного под виндой запускать и пароли у усеров менять
#25
by 1sevgene
Где и каким образом создать курсор? Запись делаю так: Insert into .... Ошибку пишет вот такую: Oracle Automation: OIP-04801: Invalid input Oracle object instance
#27
by 1sevgene
что обозначает "витает в воздухе"? Я же выполняю вставку и прописываю параметры. Если параметр BlobFeeld не задать, то вставляется запись с пустым значением поля blobfield в таблице.
#29
by 1sevgene
... или параметры не могут принимать значения типа 'Blob'. Вобщем, просветите, пожалуйста :-(
#37
by 1sevgene
Скрипт.executestatement("BlobFeeld.AppendChunkByte(Stream.Read,Stream.Size)"): Ошибка компиляции Microsoft VBScript: Недопустимо использование скобок при вызове процедуры Sub
#39
by Ковычки
скорее всего, что написал - так полуфабрикат, надо 1с подруки и хотя бы оракл слышать от другого там либо массив, дибо строку добавлять, без byte
#40
by 1sevgene
Объект не поддерживает это свойство или метод: 'BlobFeeld.AppendChunkByte' :-( Наверное, нужно все таки использовать курсор... Torquader, просьба помочь по данному вопросу.
#41
by Torquader
Кстати, у OLE DB есть возможность определять, как представлять тип BLOB, так как по умолчанию, он не есть поток байтов - поэтому, Object Browser - и смотрим, какие параметры у BLOB-поля, чтобы оно было задано. Кроме того, запрос типа Insert сначала делают prepare, чтобы он "подготовился" и определил параметры, а потом уже "execute".
#42
by v77
Dim OraSession As OraSession Dim OraDatabase As OraDatabase Dim PartDesc as OraCLOB 'Create the OraSession Object. Set OraSession = CreateObject("OracleInProcServer.XOraSession") 'Create the OraDatabase Object by opening a connection to Oracle. 'Create a Dynaset containing a BLOB and a CLOB column set part = OraDatabase.CreateDynaset ("select * from part where 'Copy the entire LOB content to partdesc.txt file PartDesc.CopyToFile "partdesc.txt"
#43
by v77
Dim OraSession As OraSession Dim OraDatabase As OraDatabase Dim PartImage as OraBLOB 'Create the OraSession Object. Set OraSession = CreateObject("OracleInProcServer.XOraSession") 'Create the OraDatabase Object by opening a connection to Oracle. 'Create a Dynaset containing a BLOB and a CLOB column set part = OraDatabase.CreateDynaset ("select * from part where 'copy the entire content of partimage.jpg file to LOBS part.Edit PartImage.CopyFromFile "partimage.jpg" part.Update
#51
by mikecool
помнится давно писал в блобы из дельфи - состав команд зависит от провайдера данных. используя бде - можно кажется было просто insert и все а вот используя doa - сначала инсерт, а потом апдейт с добавлением данных блоба кажись что то такое было
#58
by 1sevgene
{D:WORK!RETAIL-TEST-NEWEXTFORMSBLOB.ERT}: Oracle Automation: OIP-04908: This operation is not permitted on a Null LOB
#60
by v77
None of the LOB operations are allowed on NULL LOBs. To avoid errors, this may be detected via the IsNull property. To perform write operations on a LOB that is NULL, the LOB column must first be initialized with an 'Empty' value.
#62
by 1sevgene
В таблице у меня 2 поля: ИД картинки и картинка. Сначала делаю инсерт с непустым параметром ИД поля и пустым параметром картинки. Затем вставляю картинку в BLOB с помощью Вашего кода:
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
В этой группе 1С
- флешка открывается и исчезает с интервалом 1с
- СКД: Консоль отчетов УТ 10.3, Модифицирование отчета по закупу
- Возможно ли вывести в форме списка документа информацию о прикрепленных файлах
- СКД: Как выводить только поля итогов, а группировки не выводить
- Можно ли в таблице значений на форме сделать строку многострочной, как в табличной ча
- Можно ли в запрос в качестве параметра передавать массив
- Как удалить настройку построителя отчета?
- Как из двух баз с одинаковой конфигурацией сделать РИБ
- Чтение DBF файла (кодировка) 8.1.
- Контроль остатка и количества в резерве в УПП.
- JSON пакеты и 1С 77
- СКД: Как в запросе взять ячейку из табличной части документа?
- Лицевой счет (Т-54) для БП8
- 1:С Специалист-консультант ЗУП
- СКД: Как в СКД у системного поля – НомерПоПорядку убрать сквозную нумерацию
- Справка во внешней обработке
- Нумерация В РИБ
- v8: Выборка оборотов по регистру бухгалтерии: как лучше задать интервал?
- СКД: СКД: как программно или в схеме компоновки передать значение параметра для запроса?
- можно ли запросом найти родителя первого уровня