Como Guardar Una Imagen En Sqlite En Un Campo Blob?


Objetivo: Como Guardar Una Imagen En Sqlite En Un Campo Blob?
buenas,

La idea de este post es descubrir como se hace y que quede de manual.

1- el primer paso es crear un campo de tipo blob, por ejemplo con el nombre logo (logo empresa)

yo estoy armando una tabla InfoEmpresa para el programa taller con esta sentencia:

CREATE TABLE infoEmpresa (
"idInfoEmp" integer PRIMARY KEY NOT NULL,
"nombre" text,
"descripcion" text,
"cel" varchar(32),
"tel_fax" varchar(32),
"direccion" text,
"mail" varchar(64),
"web" text,
"twitter" varchar(64),
"facebook" text,
"youtube" text,
"logo" blob)


algo que me pregunto aquí.... ese sentencia no me convence pues solo habrá una fila que solamente cambiara los datos (como debería ser la sentencia para esa tabla?)


2- como sigue?.....

Objetivo: Re: Como Guardar Una Imagen En Sqlite En Un Campo Blob?
encontré esto en el foro a ver que tal....

http://foro.gambas-es.org/viewtopic.php?f=3&t=846

última edición por v3ctor el Lunes, 28 Diciembre 2015, 18:39; editado 1 vez
Objetivo: Re: Como Guardar Una Imagen En Sqlite En Un Campo Blob?


Recuerdo que ante la pregunta de guardar imágenes en una bd el profesor, de ese taller, recomendó guardar la ruta de la carpeta donde guardaríamos dichas imágenes y NO usar blob. Fue mi compañero de grupo quien hizo la consulta y desde ahí, cuando lo he requerido, es eso lo que hago. Las imágenes se guardan en una carpeta, cambiando el nombre por el Id del usuario más un número adicional que era la fecha y hora.

Por lo tanto nunca probé el blob y no sé cuales son problemas que se pueden encontrar (corrupción, decía mi amigo).

Saludos a todos.

Perfil MP  
Objetivo: Re: Como Guardar Una Imagen En Sqlite En Un Campo Blob?
en este caso solo es guardar una sola imagen... que es la que corresponde al logo de una empresa x.

hasta ahora estoy viendo que el blob funciona guardando los datos en texto pero de una forma particular, (creo que los bytes tipo hexadecimal) y después se toman esos datos y se arma el archivo de nuevo en este caso una imagen.

voy a ver si hago un ejemplo de eso... jajaj pasa que ando con pereza últimamente jajajaj.

sigo investigando....

Objetivo: Re: Como Guardar Una Imagen En Sqlite En Un Campo Blob?
aquí les dejo lo que descubri y un ejemplo:

pantallazo_baseinfoempresa

Ejemplo de uso de campo Blob en sqlite3

Objetivo: Re: Como Guardar Una Imagen En Sqlite En Un Campo Blob?
Ejemplo 2:

' gambas class file

' By postapase
'copia la base de datos del proyecto en tu usuario home
'para usar este ejemplo

Public MiConexion As Connection

Public Sub Form_Open()

MiConexion = New Connection
MiConexion.Type = "sqlite3"
MiConexion.Host = User.Home
MiConexion.Name = "EmpresaBD"
MiConexion.Open

End

Public Sub Button1_Click()
Dim Archivo As FILE
Dim Fichero, contenido As String
Dim Resultado, Resultado2, Resultado3 As Result
Dim registros As Integer

Dialog.Filter = ["*", "All Files"]
Dialog.Title = "Seleccione el archivo a insertar en el campo Blob"

If Dialog.OpenFile() Then Return

If Not MiConexion.Opened Then MiConexion.Open

Fichero = File.Load(Dialog.Path)

Resultado3 = MiConexion.Exec("select count(*) as cantidad from infoEmpresa")

If Resultado3!cantidad = 0 Then
MiConexion.Exec("insert into infoEmpresa (nameArch) values(&1)", file.Name(Dialog.Path))
Wait 0.1
Resultado = MiConexion.Edit("infoEmpresa", "id=1")
Resultado!logo = Fichero
Resultado.Update
Wait 0.1

Resultado2 = MiConexion.find("infoEmpresa", "id=1")
Contenido = Resultado2!logo

Archivo = Open User.Home &/ "logo.png" For Create
Write #Archivo, contenido, Len(contenido)
Close #Archivo

PictureBox1.Picture = Picture.Load(User.Home &/ "logo.png")

Else
Resultado = MiConexion.Edit("infoEmpresa", "id=1")
Resultado!nameArch = File.Name(Dialog.Path)
Resultado!logo = Fichero
Resultado.Update

Wait 0.1

Resultado2 = MiConexion.find("infoEmpresa", "id=1")
Contenido = Resultado2!logo

Archivo = Open User.Home &/ "logo.png" For Create
Write #Archivo, contenido, Len(contenido)
Close #Archivo

PictureBox1.Picture = Picture.Load(User.Home &/ "logo.png")

Endif

End


Otro ejemplo:

última edición por v3ctor el Martes, 29 Diciembre 2015, 15:20; editado 1 vez

Ejemplo2_Blob(sqlite3)-0.1.tar.gz
Descripción:  
Descargar
Nombre del archivo: Ejemplo2_Blob(sqlite3)-0.1.tar.gz
Tamaño: 40.06 KB
Descargado: 82 veces
Ejemplo2_Blob(sqlite3)-0.1.tar.gz
Descripción:  
Descargar
Nombre del archivo: Ejemplo2_Blob(sqlite3)-0.1.tar.gz
Tamaño: 40.06 KB
Descargado: 82 veces
Ejemplo2_Blob(sqlite3)-0.1.tar.gz
Descripción:  
Descargar
Nombre del archivo: Ejemplo2_Blob(sqlite3)-0.1.tar.gz
Tamaño: 40.06 KB
Descargado: 82 veces

Objetivo: Re: Como Guardar Una Imagen En Sqlite En Un Campo Blob?
otra opcion es guardar la imagen en base64
en la base de datos solo se necesita un campo de texto

en el basic del otro lado(.net) no es necesario pasar por el sistema de archivos
para mostrar la imagen

no tengo codigos de ejemplo ahora
hagan backups

última edición por codificador el Martes, 29 Diciembre 2015, 17:11; editado 1 vez
Perfil MP  
Objetivo: Re: Como Guardar Una Imagen En Sqlite En Un Campo Blob?
Me suena que hace un par de años subí un ejemplo de eso... pero no lo encuentro ahora.

Perfil MP  
Objetivo: Re: Como Guardar Una Imagen En Sqlite En Un Campo Blob?
Shordi:

Citar:
Me suena que hace un par de años subí un ejemplo de eso... pero no lo encuentro ahora.



Lo encontre en mi curso de gambas:
http://cursogambas.blogspot.com.es/...-guardar-y.html

el enlace del foro era este: http://foro.gambas-es.org/viewtopic.php?f=5&t=3355

Objetivo: Re: Como Guardar Una Imagen En Sqlite En Un Campo Blob?
Gracias Julio. No lo encontraba porque buscaba "blob" y no "binario"...

Perfil MP  

Página 1 de 1


  
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario

   

Está utilizando la versión (Lo-Fi). Para ver la versión completa del foro, haga clic aquí.

Powered by Icy Phoenix based on phpBB
Design by DiDiDaDo

Página generada en:: 0.5529s (PHP: -70% SQL: 170%)
Consultas SQL: 50 - Debug off - GZIP Activado