Resumen Insertar Gráfico en Oracle

Mensaje enviado por cbermude@email.ypf.com.ar

No es mucho lo que sé de Oracle 8, pero creo que el tratamiento que podés hacer es el mismo que haríamos con un "LongRow" de Oracle 7.3.4. La diferencia está en la capacidad de almacenamiento ( algo de 15 Gbytes. ) por columna, y ( acá está lo que es muy fuerte ) la posibilidad de agregar "cardtridges" que te permitan hacer consultas ( con SQL extendido ) sobre esa columna de contenido "binario", siempre y cuando los datos contenidos en cada tupla tengan una cierta coherencia. No sería lógico comparar una
archivo MP3 con una Imágen satelital. ( Con excepción de "El Lado Oscuro de la Luna" de Pink Floyd ) :-)))

Si estás usando ADO con el ORACLE Provider, simplemente podés usar el método que está en la MSDN. ( Que anda, y bien ) Si estás usando RDO, DAO, o cualquier cosa que se conecte con ODBC, te diría que no consumas esfuerzos de gusto. No son lo suficientemente robustos para manejar lo que vos querés.

Bueno, te detallo lo que hago para almacenar campos binarios. Extraído de la documentación de "OO4O".
Acá va el Ej.:

Sub AppendChunkExample (FName As String)

 Dim NumChunks As Integer, RemChunkSize As Integer
 Dim TotalSize As Long, CurChunk As String
 Dim I As Integer, FNum As Integer, ChunkSize As Integer

 'Set the size of each chunk.
 ChunkSize = 10240

 'Begin an add operation.
 OraDynaset.DbAddNew

 'Clear the LONGRAW field.
 OraDynaset.Fields("LONGRAW").Value = ""

 'Get a free file number.
 FNum = FreeFile

 'Open the file.
 Open FName For Binary As #FNum

 'Get the total size of the file.
 TotalSize = LOF(FNum)

 'Set number of chunks.
 NumChunks = TotalSize \ ChunkSize

 'Set number of remaining bytes.
 RemChunkSize = TotalSize Mod ChunkSize

 'Loop through the file.
 For I = 0 To NumChunks

  'Calculate the new chunk size.
  If I = NumChunks Then
   ChunkSize = RemChunkSize
  End If

  CurChunk = String$(ChunkSize, 32)

  'Read a chunk from the file.

  Get #FNum, , CurChunk

  'Append chunk to LONGRAW field.
  OraDynaset.Fields("LONGRAW").DbAppendChunk (CurChunk)
 Next I

'Complete the add operation and update the database.
OraDynaset.DbUpdate

 'Close the file.
 Close FNum

End Sub

Espero que te sirva,

Saludos.
claudio.

PD: A mi tampoco me gusta dejar las imágenes "sueltas" en un directorio del disco. Creo que en eso la BD debe ser autosuficiente.



Resumen Resumen

Visual Basic Página de Visual Basic

Página principal Página principal

www.jrubi.com