Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

sacar fotos de 1 b.d. access

Estas en el tema de sacar fotos de 1 b.d. access en el foro de Bases de Datos General en Foros del Web. en el trabajo me han dado un cd que contiene una base de datos con información diversa. Cada registro tiene un campo tipo ole que ...
  #1 (permalink)  
Antiguo 08/11/2003, 03:46
Avatar de pereztroff  
Fecha de Ingreso: junio-2002
Ubicación: En la Internet.
Mensajes: 4.068
Antigüedad: 22 años, 5 meses
Puntos: 5
sacar fotos de 1 b.d. access

en el trabajo me han dado un cd que contiene una base de datos con información diversa. Cada registro tiene un campo tipo ole que contiene una fotografía.
El problema es que la base de datos ocupa mucho, porque insertaron fotos con mucha resolución y tamaño. Yo quiero sacar todas esas fotos de la b.d. a un directorio, borrar el campo ole que las contiene, y crear un nuevo campo que tenga el nombre de archivo grafico, para que la base de datos pese menos y sea mas manejable.

¿ cómo saco las fotos de una b.d. acces a un directorio?
esa es mi pregunta.

gracias.
  #2 (permalink)  
Antiguo 12/11/2003, 11:08
 
Fecha de Ingreso: mayo-2003
Mensajes: 33
Antigüedad: 21 años, 6 meses
Puntos: 0
Una forma es utilizar visual basic, utilizando las propiedades del recordset chunk... con esto puedes "bajar" tus campos OLE a un archivo temporal y éstos los puedes guardar (ya sea como jpg o gif)...

<Code>
'-----ejemplo de código en visual basic v6 sp5-----
'-----usando un DataEnvironment para la conexion a Datos--
Private Sub Form_Load()
Dim DataFile As Integer, Fl As Long, Chunks As Integer
Dim Fragment As Integer, Chunk() As Byte, i As Integer
Const ChunkSize As Integer = 16384

with dta.Recordsets("Tabla")
If .State = 1 Then
.Close
End If
.Open "Select * from Tabla"
while .EOF = False
Open "pictemp" & .Fields("Id") For Binary Access Write As DataFile
Fl = dta.Recordsets("Tabla").Fields("Imagen").ActualSiz e
Chunks = Fl \ ChunkSize
Fragment = Fl Mod ChunkSize
ReDim Chunk(Fragment)
Chunk() = dta.Recordsets("Tabla").Fields("Imagen").GetChunk( Fragment)
Put DataFile, , Chunk()
For i = 1 To Chunks
ReDim Buffer(ChunkSize)
Chunk() = dta.Recordsets("Tabla").Fields("Imagen").GetChunk( ChunkSize)
Put DataFile, , Chunk()
Next i
Close DataFile
.MoveNext
Wend
End Sub


</Code>
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:32.