Visual

Solo disponible en BuenasTareas
  • Páginas : 5 (1107 palabras )
  • Descarga(s) : 0
  • Publicado : 30 de noviembre de 2010
Leer documento completo
Vista previa del texto
[pic][pic][pic] |el Guille, la Web del Visual Basic, C#, .NET y más... | |
| |  Lo+ - WinFX - .NET - ADO.NET - ASP.NET - Cómo... - Colabora - VB6 - |
| |API - HTML - Vista - Links - Foros   |

Si resides en Argentina, Chile, Colombia, Costa Rica,Rep. Dominicana o Venezuela
gana como minimo 10 USD (sin sorteos)
si compartes tu opinion sobre tecnologia
[pic]
Bases de datos e imágenes
Cómo mostrar imágenes de una base de datos, sin usar controles vinculados a un DataControl
Fecha: 6/May/98
[pic]
[pic][pic][pic][pic][pic][pic][pic]
A pesar de que me suelo quejar de las consultas, algunas veces me sirven para "indagar" encosillas que no he probado y al final resulta que hasta se agradecen, (que no sirva este comentario para que me lleneis el buzón con consultas... ¿vale?)
Este es el caso del colega y colaborador Jose Montaner 'Satelite', que me mandó una consulta sobre cómo mostrar una imagen que está en una base de datos, pero sin usar el data control, ya que con ese control y un Picture enlazado al campo de laimagen, no tiene ningún misterio, ya que el propio DataControl se encarga del trabajo sucio.
Pues investigando y buscando... encontré la solución... ¿dónde? En el sitio que casi nadie busca: la propia ayuda del Visual Basic; aunque estaba algo "dispersa" esa información, tomando un cachillo de aquí y otro de allá... salió esto.
Los procedimientos que se encargan de mostrar elcontenido de un campo de la base de datos en un control Picture y la operación inversa, es decir guardar en la base de datos lo que se muestre en el control Picture, los he puesto en un módulo bas, 'Satelite' me envió después esas funciones en un módulo de clase, pero para no complicarnos el tema, vamos a verlo en un módulo bas.
Los listados aquí mostrados son sólo los de dicho módulo, pero enel ejemplo que se acompaña, hay una pequeña aplicación que te permite moverte en una base de datos, añadir nuevos registros y modificar los existentes... y todo ello sin usar el data control, para los que quieran ver el mismo código usando el DataControl, también se acompaña un ejemplo.
Este es el código a usar para leer de la base de datos y mostrar la imagen en el PictureBox:'rContactos es el Recordset del que se tomarán los datos

'El campo FOTOS será del tipo "Objeto OLE"

LeerBinary rContactos!FOTO, Picture1

 
Y este otro es el que habría que usar para guardar en la base de datos el contenido del Picture:

'

GuardarBinary rContactos!FOTO, Picture1

Simple, ¿verdad?
Pues aquí están las rutinas"culpables" de esa simplicidad:

'------------------------------------------------------------------

'Código para grabar y leer imagenes en campos de bases ( 9/Abr/98)

'

'Adaptado de un par de ejemplos de la ayuda de VB5

'

'©Guillermo 'guille' Som, 1998

'------------------------------------------------------------------Option Explicit

Dim DataFile As Integer

Dim Chunk() As Byte

Const conChunkSize As Integer = 16384

Public Sub LeerBinary(campoBinary As Field, unPicture As PictureBox)

'Leer la imagen del campo de la base y asignarlo al Picture

Dim lngCompensación As Long

Dim lngTamañoTotal As Long

'Se usa un ficherotemporal para guardar la imagen

DataFile = FreeFile

Open "pictemp" For Binary Access Write As DataFile

lngTamañoTotal = campoBinary.FieldSize

Do While lngCompensación < lngTamañoTotal

Chunk() = campoBinary.GetChunk(lngCompensación, conChunkSize)

Put DataFile, , Chunk()

lngCompensación =...
tracking img