VB6 Oracle извлекает Clob в массив

Я пытаюсь получить поле оракула с типом данных clob в массив VB без переформатирования строки извлечения SQL (просто SELECT * FROM my_table). Я использую набор записей ADO.

Значения clob теряются, когда я закрываю соединение или выполняю любое другое действие с набором записей. Как я могу этого добиться.


person Community    schedule 27.01.2009    source источник


Ответы (1)


В одном из своих проектов я пытался манипулировать BLOB и CLOB с помощью ADO, но безуспешно, пока не переключился на Oracle Objects 4 OLE. Вам необходимо установить и настроить клиент Oracle на вашем компьютере, в ссылках проекта добавить «Библиотека типов Oracle InProc Server 4.0».

Вот пример кода, который я использовал для BLOB:

Dim OraSession  As OracleInProcServer.OraSessionClass
Dim OraDatabase As OracleInProcServer.OraDatabase
Dim OraDynaset  As OracleInProcServer.OraDynaset
Dim srcImg As OraBlob

Set OraSession = CreateObject("OracleInProcServer.XOraSession")
Set OraDatabase = OraSession.DbOpenDatabase("myDBName", "login/password", 0&)

Set OraDynaset = OraDatabase.DbCreateDynaset("SELECT src_id, src_image from Sources where src_file_name like '%.png'", 0&)
With OraDynaset
    If .RecordCount > 0 Then
        .MoveFirst
        While (Not .EOF Or .BOF)
            Set srcImg = .Fields("src_image").Value
            srcImg.CopyToFile ("C:\sources\" & srcID & ".png")
            .MoveNext
        Wend

    End If
End With

Set OraDynaset = Nothing
Set OraDatabase = Nothing
Set OraSession = Nothing
person user34850    schedule 28.01.2009