Pregunta: | 573 - COMO GUARDAR IMAGENES EN VISUAL BASIC |
Autor: | Hugo Cardenas Riojas |
Por Favor, estoy trabajando en Visual Basic usando RDO con una base de datos en SQL server 6.0. Grabo datos numericos, textos, fechas mas mi gran problema es como grabar una imagen o foto en esta base de datos, sin utilizar RDC o el Data Control Estoy utilizando el control Image con su propiedad Picture pero me sale un error " Numero de Parametro Incorrecto". PD. Si me ayuda para trabajar Con DAO, estaria mas que agradecido |
Respuesta: | Fernando morales |
Hola definitivamente yo tambien te aconsejo que no las guardes en la base de datos, simplemente utiliza un campo varchar en una tabla donde guardes el nombre de la imagen, y luego cuando vayas a hacer referencia a esa imagen o quieres que aparesca en el picture, utilizas el siguiente codigo:
Picture1.Picture = LoadPicture("E:\Proyecto\Imagenes\" & consulta!Foto_u) dentro de loadPicture, va la ruta donde guardas la imagen, y le concatenas el nombre el cual lo tienes guardado en la base de datos, para esto primero tienes que extraer el nombre de la base de datos, si no sabes como hacer eso me dices y yo te mando el codigo, espero te sirva saludos desde michoacan |
Respuesta: | Jose Andres Mosquera Ramos |
Hola, amigo yo te sugiero una forma mas facil, no hagas un campo en la base de datos para guradar imagenes ya q esto hace q la base de datos se torne muy pesada.... crea una carpeta alterna para guardar las imagenes.. como las vas a guardar muy facil cuando le des guardar la imagen la salvaras en la carpeta con un nombre... cuando desees cargarla para consultarla solo le haces referencia al nombre y colocarla en el picture... eso es todo.... el codigo no te lo envio porq esta de tu parte investigar y hacerlo... espero te sirva... cualquier duda escribeme... |
Respuesta: | Juan Pablo Crossley |
Este es un metodo más estandar:
'Grabar recibe un picture y genera el campo Public Function Grabar(picImagen As PictureBox) As Variant On Error GoTo ErrorHandler Dim n As Integer Dim X As Long Dim tb() As Byte n = FreeFile If Dir$(App.Path & "\tmp.bmp") <> "" Then Kill App.Path & "\tmp.bmp" End If If picImagen.Picture.Handle <> 0 Then SavePicture picImagen.Picture, App.Path & "\tmp.bmp" Open App.Path & "\tmp.bmp" For Binary As n For X = 0 To LOF(n) ReDim Preserve tb(X + 1) Get #n, , tb(X) Next X Close #n Grabar = tb Else Grabar = Null End If Exit Function ErrorHandler: End Function Public Function Recuperar(Imagen As ADODB.Field) As IPictureDisp On Error GoTo ErrorHandler Dim n As Integer Dim X As Long Dim tb() As Byte 'Variable a almacenar en bmp Dim varImagen As Variant 'Variable para de donde viene el arreglo If TypeOf Imagen Is Field Then varImagen = Imagen.Value Else varImagen = Imagen End If For X = LBound(varImagen) To UBound(varImagen) ReDim Preserve tb(X + 1) tb(X) = varImagen(X) Next X If Dir$(App.Path & "\tmp.bmp") <> "" Then Kill App.Path & "\tmp.bmp" End If n = FreeFile Open App.Path & "\tmp.bmp" For Binary As n X = 0 For X = LBound(tb) To UBound(tb) Put #n, , tb(X) Next X Close #n Set Recuperar = LoadPicture(App.Path & "\tmp.bmp") If Dir$(App.Path & "\tmp.bmp") <> "" Then%0 |
Respuesta: | Rodrigo Treviño |
primero lo primero, no esplicas todo lo que has hecho para tratar de hacerlo, pero hay te va todo lo que necesitas. crear un campo objeto Ole(binario), que te permite guardar imagenes o cosas como hojas de calculo o procesadores de texto que sean servidores ole Saludos y espero haber podido ayudarte |