¿Cómo leer las imágenes (binarias) en la base de datos y mostrarlas en el control Imagen de la interfaz? [VB6.0]
Resumen Este artículo utiliza VB6 y Access97 como herramientas de desarrollo para introducir la tecnología de almacenamiento y visualización de imágenes en la base de datos.
Base de datos de palabras clave, control de datos, binario, almacenamiento de imágenes, visualización de imágenes, ADODB, Recordset
La base de datos es la última tecnología de gestión de datos, una rama importante de la informática y un moderno computadora La base y el núcleo de los sistemas de información y aplicaciones informáticas. Hoy en día, con el rápido desarrollo de la ciencia y la tecnología, cuando los recursos de información son ubicuos y utilizados en todas partes, y se han convertido en un activo importante para varios departamentos, es particularmente importante para quienes participan en el desarrollo de programas.
Hoy en día, el funcionamiento de una base de datos no sólo se conforma con la operación única de caracteres y números, sino que el almacenamiento y visualización de imágenes ha adquirido especial importancia. El siguiente autor utilizará VB6.0 y Access97 como herramientas de desarrollo para presentar dos métodos de visualización y almacenamiento de imágenes, respectivamente.
Uso de controles de datos y controles de enlace de datos
Con este método, puede construir una aplicación de base de datos simple sin escribir ni escribir una pequeña cantidad de código. Este método es fácil de aceptar. por principiantes. Antes de dar un ejemplo, permítanme explicar brevemente la función de enlace de datos. Todos los controles con propiedades DataSource son sensibles a los datos y pueden utilizar datos directamente en la base de datos a través de controles de datos. Por ejemplo, CheckBox Control, ComboBox Comtrol, TextBox Control, PictureBox Control, Image Comtrol ... Debido a que este método implica relativamente pocos puntos de conocimiento y es más fácil de entender, no lo explicaré en detalle, sino que presentaré directamente los pasos de programación.
1. Muestre las imágenes requeridas de la base de datos.
Primero, agregue un control de datos, establezca sus propiedades DatabaseName y RecordSource,
strPath = App .Path.
Si Right(strPath, 1) <> "\" Entonces
strPath = strPath & "\"
MyData.DatabaseName = strPath & " EjemploDB. mdb" 'Dirección del inventario de datos
MyData.RecordSource = "Info" 'Nombre de la tabla
El segundo paso es agregar un control Imagen para mostrar imágenes y establecer su propiedad DataSource y DataField. Por ejemplo, en este ejemplo: Image1.DataSource="MyData" e Image1.DataField="MyPhoto". Luego configure otros controles con funciones de enlace de datos para mostrar otro contenido que desee. Después de estos dos pasos, puede ejecutar el programa para mostrar los datos que desee.
2. Agregue imágenes que deben almacenarse en la base de datos.
Primero, use la propiedad AddNew del control de datos para agregar un botón, haga doble clic y agregue el siguiente código MyData. .Recordset.AddNew
El segundo paso es especificar la ruta de la imagen Image1.Picture = LoadPicture("Picture Path") para la imagen de control de imagen. Después de estos dos pasos, puede agregar imágenes a la base de datos.
Este método es el más sencillo y rápido, y requiere muy poco código. Sin embargo, este método tiene ciertas limitaciones en términos de velocidad de ejecución y flexibilidad. Es adecuado para principiantes y para algunas aplicaciones simples. Si desea mostrar imágenes de manera flexible, el método que se presenta a continuación puede ser más adecuado para sus necesidades.
Utilice la escritura de código para realizar el almacenamiento y visualización de imágenes
En comparación con el método uno, este método requiere una mayor cantidad de código, pero su funcionamiento es flexible y puede cumplir con varias formas. de operaciones. Favorecido por más programadores. Sin embargo, el conocimiento involucrado es relativamente mayor. No solo debe dominar el método de operación de la base de datos, sino que también debe tener una mayor comprensión de la lectura y escritura de archivos binarios.
Hay muchos libros de referencia que describen las operaciones básicas de bases de datos y archivos binarios con más detalle. Consúltelos cuando sea necesario. Antes de programar, describa las variables utilizadas en esta parte de la siguiente manera:
Dim RS As New ADODB.Recordset
Dim Chunk() As Byte
Const ChunkSize As Entero = 2384
Atenuar archivo de datos como entero, fragmentos, fragmento como entero
Atenuar MediaTemp como cadena
Atenuar lngOffset, lngTotalSize como largo
Atenuar i como entero
1. Mostrar las imágenes requeridas de la base de datos
El primer paso es abrir la base de datos para ver si hay algo que desee encontrar. , continúe la ejecución. Si no, simplemente salga
RS.Source = "select * from Info Where Name='" & sparaName &"';"
RS.ActiveConnection = "UID. =;PWD=;DSN= TestDB;"
RS.Open
Si RS.EOF Entonces RS.cCose: Salir Sub
El segundo paso es lea los datos binarios largos, es decir, los datos de la imagen, conviértalos en un archivo de imagen, el proceso de operación es el siguiente
MediaTemp = strPath & "picturetemp.tmp"
DataFile = 1
Abrir MediaTemp para acceso binario Escribir como archivo de datos
lngTotalSize = RS!MyPhoto.ActualSize
Chunks = lngTotalSize \ ChunkSize
Fragmento = lngTotalSize Mod ChunkSize
ReDim Chunk( Fragmento)
Chunk() = RS!MyPhoto.GetChunk(Fragmento)
Poner DataFile, , Chunk()
Para i = 1 a fragmentos
p>ReDim Chunk(ChunkSize)
Chunk() = RS!MyPhoto.GetChunk(ChunkSize)
Poner DataFile, Chunk()
Siguiente
Cerrar DataFile
El tercer paso es cerrar la base de datos para que la imagen deseada pueda ser desplegado.
RS.Close
Si MediaTemp = "" Entonces salga de Sub
Imagen1.Picture = LoadPicture(MediaTemp)
Si Imagen1. Imagen = 0 Luego salga de Subj
2. Agregue imágenes que deben almacenarse en la base de datos
Agregar imágenes almacenadas a la base de datos es el proceso inverso a mostrar imágenes. domine la operación de visualización de imágenes. La operación de almacenamiento de imágenes se resuelve fácilmente. Los pasos de la operación se presentan a continuación
El primer paso es abrir la base de datos. El proceso es el siguiente:
RS.Source = "seleccione * de Información;"
RS.CursorType = adOpenKeyset
RS.LockType = adLockOptimistic
RS.ActiveConnection = "UID =;PWD=;DSN=TestDB;"
RS.Open
El segundo paso es convertir la imagen que se almacenará en un archivo binario largo y almacenarlo en la base de datos. El proceso de operación es el siguiente
RS.AddNew
DataFile = 1
Abrir strPathPicture para acceso binario Leer como DataFile
FileLen = LOF(DataFile) ' Longitud de datos en el archivo
Si FileLen = 0 Entonces: Cerrar DataFile: RS.Close: Salir Sub
Chunks = FileLen \ ChunkSize
Fragmento = FileLen Mod ChunkSize
ReDim Chunk(Fragmento)
Obtener DataFile, , Chunk()
RS!MyPhoto.AppendChunk Chunk()
ReDim Chunk(ChunkSize)
Para i = 1 a fragmentos
Obtener DataFile, , Chunk()
RS!MyPhoto.AppendChunk Chunk( )
Siguiente i
Cerrar archivo de datos
p>El tercer paso es cerrar la base de datos después de actualizar el registro. Esto completa el almacenamiento de las imágenes de datos en el archivo. base de datos.
RS.Update
RS.Close
Establecer RS = Nada
Ambos métodos tienen sus propias ventajas de uso. Lectores Puede. tomar decisiones razonables basadas en su situación.
El método es fácil de implementar. No es igual que el de arriba.