VB6 Oracle получает Clob в массив - PullRequest
1 голос
/ 27 января 2009

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

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

1 Ответ

3 голосов
/ 28 января 2009

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

Вот пример кода, который я использовал для больших двоичных объектов:

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
...