2009-01-27 6 views
1

J'essaie de récupérer un champ oracle avec un type de données clob dans un tableau VB sans reformater la chaîne SQL de récupération (simplement SELECT * FROM my_table). J'utilise un jeu d'enregistrements ADO.VB6 Oracle Récupération Clob dans un tableau

Les valeurs de clob sont perdues lorsque je ferme la connexion ou effectuez une autre action avec le jeu d'enregistrements. Comment puis-je atteindre cet objectif.

Répondre

3

Dans l'un de mes projets, j'ai essayé de manipuler des BLOB et des CLOB en utilisant ADO, mais sans succès, jusqu'à ce que je passe à Oracle Objects 4 OLE. Vous devez installer et configurer le client Oracle sur votre machine, les références du projet ajoutent "Oracle InProc Server 4.0 Type Library".

Voici un exemple de code j'ai utilisé pour BLOBs:

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 
Questions connexes