Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 MSDAORA.1 и blob поля  [new]
DiasV
Member

Откуда:
Сообщений: 30
Здравствуйте! Вопрос такой.

Я так понимаю MSDAORA.1 не хочет работать с блоб полями, ругается на "-2147467259 - Тип данных не поддерживается".
Если же использовать OraOLEDB.Oracle то можно работать с блобами, но не на всех клиентах, ругается таким образом "Run-time error '3706'
Не удается найти указанного поставщика. Вероятно, он установлен неправильно."

Много читал по этому поводу но конкретное решении проблемы не нашел, может кто сталкивался, помогите разобраться!!!
15 янв 09, 14:52    [6691099]     Ответить | Цитировать Сообщить модератору
 Re: MSDAORA.1 и blob поля  [new]
Denis Popov
Member

Откуда: Санкт-Петербург
Сообщений: 7862

DiasV wrote at 15.01.2009 14:52:

> Я так понимаю MSDAORA.1 не хочет работать с блоб полями, ругается на
> "-2147467259 - Тип данных не поддерживается".
> Если же использовать OraOLEDB.Oracle то можно работать с блобами, но не
> на всех клиентах, ругается таким образом "Run-time error '3706'
> Не удается найти указанного поставщика. Вероятно, он установлен
> неправильно."


Посмотри на главу "Oracle Objects for OLE Redistributable Files":

http://download.oracle.com/docs/cd/B19306_01/win.102/b14309/intro.htm#BGBDDACA

Posted via ActualForum NNTP Server 1.4

15 янв 09, 15:08    [6691277]     Ответить | Цитировать Сообщить модератору
 Re: MSDAORA.1 и blob поля  [new]
DiasV
Member

Откуда:
Сообщений: 30
Может есть вариант проще.

Я решил создать хранимую процедуру в оракле и к ней обратиться.

PROCEDURE WRITE_TO_BLOB(in_id in number, blob_value out blob) is
begin
UPDATE GAXML t
SET
t.XML_DOC = EMPTY_BLOB()
WHERE
t.id = in_id
RETURNING
t.XML_DOC
INTO
blob_Value;
end write_to_blob;
Обращение из VB 6.0
Dim cmd As ADODB.Command
Dim rs As ADODB.Recordset

    Set cmd = New ADODB.Command
    Set cmd.ActiveConnection = DBConn
    cmd.CommandTimeout = 20
    cmd.CommandType = adCmdStoredProc
    cmd.CommandText = "схема.WRITE_TO_BLOB"
    'cmd.Prepared
    cmd.CreateParameter "id", adInteger, adParamInput, , 41

    Dim mstream As ADODB.Stream
    Set mstream = New ADODB.Stream
    mstream.Type = adTypeBinary
    mstream.Open
    mstream.LoadFromFile App.path & "\Vrem.xml"

    cmd.CreateParameter "XML_DOC", adBinary, adParamOutput, , mstream.Read   '  "yyyyyyyy"
    Set rs = New ADODB.Recordset
    rs.CursorLocation = adUseClient
    rs.Open cmd, , adOpenStatic, adLockReadOnly
    Set rs.ActiveConnection = Nothing
Ошибка передаваемого параметра, посоветуйте что нидь пожалуйста!

Сообщение было отредактировано: 15 янв 09, 18:42
15 янв 09, 18:31    [6693044]     Ответить | Цитировать Сообщить модератору
 Re: MSDAORA.1 и blob поля  [new]
Denis Popov
Member

Откуда: Санкт-Петербург
Сообщений: 7862

Ты хочешь сохранять XML именно в BLOB, не в CLOB?

Posted via ActualForum NNTP Server 1.4

15 янв 09, 18:42    [6693080]     Ответить | Цитировать Сообщить модератору
 Re: MSDAORA.1 и blob поля  [new]
DiasV
Member

Откуда:
Сообщений: 30
Я не знаю в чем разница, но у меня не одно поле блоб, еще есть куда я сохраняю SVG-файл,
хотелось бы в блоб, но если есть варианты с CLOB то и их готов рассмотреть
15 янв 09, 20:07    [6693318]     Ответить | Цитировать Сообщить модератору
 Re: MSDAORA.1 и blob поля  [new]
Denis Popov
Member

Откуда: Санкт-Петербург
Сообщений: 7862
Почитай про поддержку LOB'ов через OraOLEDB, ключевое слово "SPPrmsLOB":

http://download.oracle.com/docs/cd/B19306_01/win.102/b14311/using.htm#sthref144

Рабочий пример например есть тут: http://forums.devshed.com/showpost.php?p=516675&postcount=4

Сообщение было отредактировано: 16 янв 09, 13:39
16 янв 09, 13:37    [6696388]     Ответить | Цитировать Сообщить модератору
 Re: MSDAORA.1 и blob поля  [new]
IgorK
Member

Откуда: Краснодар
Сообщений: 452
Я поставил последнюю версию ODAC (от 11 оракла), вместе с провайдером - все заработало. А МС провайдер с BLOB полями не работает, и видимо не будет работать!
16 янв 09, 14:06    [6696628]     Ответить | Цитировать Сообщить модератору
 Re: MSDAORA.1 и blob поля  [new]
DiasV
Member

Откуда:
Сообщений: 30
IgorK
Я поставил последнюю версию ODAC (от 11 оракла), вместе с провайдером - все заработало. А МС провайдер с BLOB полями не работает, и видимо не будет работать!

Это придется всем клиентам ставить!?
У меня 10 оракл, в некоторых клиентских места вообще 8 стоит, можно выслать мне Odac если не трудно, сколько он весит интересно! VDK80@mail.ru
18 янв 09, 06:53    [6701633]     Ответить | Цитировать Сообщить модератору
 Re: MSDAORA.1 и blob поля  [new]
DiasV
Member

Откуда:
Сообщений: 30
Denis Popov
Почитай про поддержку LOB'ов через OraOLEDB, ключевое слово "SPPrmsLOB":

http://download.oracle.com/docs/cd/B19306_01/win.102/b14311/using.htm#sthref144

Рабочий пример например есть тут: http://forums.devshed.com/showpost.php?p=516675&postcount=4

Дело в том что через OraOLEDB все у меня работает и блоб я сохраняю без проблем, только в некоторых клиентских местах, выдает ошибку при открытии конекта (cn.open)
18 янв 09, 06:57    [6701634]     Ответить | Цитировать Сообщить модератору
 Re: MSDAORA.1 и blob поля  [new]
Denis Popov
Member

Откуда: Санкт-Петербург
Сообщений: 7862

DiasV wrote:

> Дело в том что через OraOLEDB все у меня работает и блоб я сохраняю без
> проблем, только в некоторых клиентских местах, выдает ошибку при
> открытии конекта (cn.open)

Может быть там при установке ораклового клиента в его опциях не был указан Oracle Objects for OLE.
По-моему, его можно добавить простым копированием файлов и их регистрацией, по той же ссылке:

http://download.oracle.com/docs/cd/B19306_01/win.102/b14309/intro.htm#BGBDDACA

Posted via ActualForum NNTP Server 1.4

18 янв 09, 13:36    [6701841]     Ответить | Цитировать Сообщить модератору
 Re: MSDAORA.1 и blob поля  [new]
DiasV
Member

Откуда:
Сообщений: 30
большое спасибо за помощь, переставил клиента и все заработало, не был указан Oracle Objects for OLE, теперь нужно разобраться с файлами и их регистрацией!
20 янв 09, 11:00    [6708744]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить