• Viernes 29 de Marzo de 2024, 09:28

Autor Tema:  Insertar Imagenes En Un Base De Datos  (Leído 3486 veces)

Daniel_PC

  • Miembro activo
  • **
  • Mensajes: 59
    • Ver Perfil
Insertar Imagenes En Un Base De Datos
« en: Sábado 22 de Mayo de 2004, 05:24 »
0
como puede insertar imagenes en una base de datos

gracias por responder...

elmango80

  • Miembro MUY activo
  • ***
  • Mensajes: 149
  • Nacionalidad: ve
    • Ver Perfil
Re: Insertar Imagenes En Un Base De Datos
« Respuesta #1 en: Sábado 22 de Mayo de 2004, 19:33 »
0
Hola Daniel_PC!!!

Aqui tengo varios procedimientos y funciones que te pueden servir...

Código: Text
  1.  
  2. Public Sub PonerImagenEnCampo(ByVal f As ADODB.Field, ByVal File As String)
  3.  
  4.     Dim b() As Byte
  5.     Dim ff As Long
  6.     Dim n As Long
  7.  
  8.     On Error GoTo ErrHandler
  9.     ff = FreeFile
  10.     Open File For Binary Access Read As ff
  11.     n = LOF(ff)
  12.     If n Then
  13.          ReDim b(1 To n) As Byte
  14.          Get ff, , b()
  15.     End If
  16.     Close ff
  17.     f.Value = b()
  18.     Exit Sub
  19.  
  20. ErrHandler:
  21.     MsgBox "ERROR: " & Err.Description
  22. End Sub
  23.  
  24. Public Function ObtenerImagenDesdeCampo(ByVal f As ADODB.Field) As StdPicture
  25.  
  26.     Dim b()  As Byte
  27.     Dim ff   As Long
  28.     Dim File As String
  29.  
  30.     On Error GoTo ErrHandler
  31.     Call NombreArchAleatorio(File)
  32.     ff = FreeFile
  33.     Open File For Binary Access Write As ff
  34.     b() = f.Value
  35.     Put ff, , b()
  36.     Close ff
  37.     Erase b
  38.     Set ObtenerImagenDesdeCampo = LoadPicture(File)
  39.     Kill File
  40.     Exit Function
  41.  
  42. ErrHandler:
  43.     MsgBox "ERROR: " & Err.Description
  44. End Function
  45.  
  46. '//LARGE IMAGES
  47. Public Sub PonerImagenGrandeEnCampo(ByVal f As ADODB.Field, ByVal File As String)
  48.  
  49. Dim b() As Byte
  50. Dim ff As Long
  51. Dim i As Long
  52. Dim FileLen As Long
  53. Dim Blocks As Long
  54. Dim LeftOver As Long
  55.  
  56. On Error GoTo ErrHandler
  57. ff = FreeFile
  58. Open File For Binary Access Read As ff
  59.  
  60. FileLen = LOF(ff)
  61. Blocks = Int(FileLen / nBUFFER)
  62. LeftOver = FileLen Mod nBUFFER
  63.  
  64. ReDim b(LeftOver)
  65. Get ff, , b()
  66. f.AppendChunk b()
  67.  
  68. ReDim b(nBUFFER)
  69. For i = 1 To Blocks
  70. Get ff, , b()
  71. f.AppendChunk b()
  72. Next
  73. Close ff
  74. Exit Sub
  75.  
  76. ErrHandler:
  77. MsgBox "ERROR: " & Err.Description
  78. End Sub
  79.  
  80.  
  81. Public Function ObtenerImagenGrandeDesdeCampo(ByVal f As ADODB.Field ) As StdPicture
  82.  
  83. Dim b() As Byte
  84. Dim ff As Long
  85. Dim File As String
  86. Dim i As Long
  87. 'Dim FileLen As Long
  88. Dim Blocks As Long
  89. Dim LeftOver As Long
  90.  
  91. On Error GoTo ErrHandler
  92. Call NombreArchAleatorio(File)
  93. ff = FreeFile
  94. Open File For Binary Access Write As ff
  95. Blocks = Int(f.ActualSize / nBUFFER)
  96. LeftOver = f.ActualSize Mod nBUFFER
  97. b() = f.GetChunk(LeftOver)
  98. Put ff, , b()
  99. For i = 1 To Blocks
  100. b() = f.GetChunk(nBUFFER)
  101. Put ff, , b()
  102. Next
  103. Close ff
  104. Erase b
  105. Set ObtenerImagenGrandeDesdeCampo = LoadPicture(File)
  106. Kill File
  107. Exit Function
  108.  
  109. ErrHandler:
  110. MsgBox "ERROR: " & Err.Description
  111. End Function
  112.  
  113.  
Citar
No soy bueno, tampoco soy malo sino todo lo contrario...

camarena6

  • Miembro activo
  • **
  • Mensajes: 47
    • Ver Perfil
Re: Insertar Imagenes En Un Base De Datos
« Respuesta #2 en: Lunes 24 de Mayo de 2004, 19:22 »
0
Lo mas sencillo que puedes hacer para añadir un registro con imagen es:

*Dentro de la tabla añade un campo de texto
*A este campo tan solo añadele la direccion de la imagen que deses
*Y al final solo carga la imagen en un IMAGE, utilizando alguna funcion que te dio
El mango80

*Si quieres dar de alta un registro nuevo utiliza un commonDialog para que te especifiquen la direccion y la guardes en la BD

Citar
EL que no aperra, no´prospera

Juanolo

  • Miembro MUY activo
  • ***
  • Mensajes: 202
    • Ver Perfil
Re: Insertar Imagenes En Un Base De Datos
« Respuesta #3 en: Martes 25 de Mayo de 2004, 00:02 »
0
Un voto de apoyo a camarena6.
Mi experiencia insertando imágenes en bases de datos ha sido desastroza. Si se trata de una tabla con pocos registros e imágenes livianas, se justifica el esfuerzo. Pero si, como en mi caso, se trata por ejemplo de anexar las fotografías de una lista de clientes, te encontrarás con una tabla que escapa de márgenes por el tamaño que adquiere, transformándose en un elefante difícil de manejar.
En mi caso, puse las fotografías en un directorio determinado, nombrándolas por el número de rut (sin puntos). Cuando veo el registro de un cliente, la aplicación compone la ubicación de la foto con una sencilla función y, si la encuentra, la muestra. Como verás, ni siquiera necesité crear un campo especial para la dirección de la imagen, ya que el nombre lo tomé del mismo rut del cliente.

Espero ser de ayuda.

Salu2.-
La luz que sólo se ilumina a sí misma, es oscuridad.

Daniel_PC

  • Miembro activo
  • **
  • Mensajes: 59
    • Ver Perfil
Re: Insertar Imagenes En Un Base De Datos
« Respuesta #4 en: Miércoles 2 de Junio de 2004, 03:54 »
0
Gracias por responderme me sirvio mucho......................Daniel_PC