Entrar
¿Usuario nuevo? Regístrate
eagle1 · Eagle1 usuarios
? ¿Ya estás suscrito? Entrar en Yahoo!

Consejos de Yahoo! Grupos

¿Sabías que...?
Puedes buscar mensajes antiguos en un grupo.

Mensajes

  Mensajes Ayuda
Avanzado
COMO SE PUEDE MOSTRAR IMAGENES DIRECTOS DE LA BD MYSQL   Lista de mensajes  
Responder | Reenviar Mensaje #1623 de 1683 |
RE: COMO SE PUEDE MOSTRAR IMAGENES DIRECTOS DE LA BD MYSQL

Vladimir revisa estos métodos de TQuery y TTable:

//-----------------------------------------------------
// Gestion de campos MEMO y BLOB

METHOD ReadFromFile( cFileName )
METHOD WriteToFile( nCol, cFileName )

METHOD SetReadMemo( nFld, lRead )
METHOD SetReadMemoAll( lRead )

METHOD ReadMemo( nFld )
MESSAGE ReadMemo( nFld ) METHOD ReadMemo( nFld )

Y mira el ejemplo pt18.prg
Si luego tienes dudas hablamos ;-)


//----------------------------------------------------------------------------//

#include "InKey.ch"
#include "Eagle1.ch"

//----------------------------------------------------------------------------//

procedure main()

local oCon, oDataSet // Objetos
local cHost := "127.0.0.1"
local cUser := "root"
local cPwd := "root"
local cDb := "E1Prueba"

// Datos de la tabla
local cTable := "TestMemo"
local aStruct := { { "cmMiTexto", "M", 10, 0 } } // Array como lo devuelve
DbStruct()
local cType := "BTREE" // Tipo de tabla en el servidor
local lTemporary := .f. // Indicador si es una tebla temporal
local lNotExists := .t. // Indicador de que la cree sólo si no existe

cls

// Creamos objeto conexion
oCon := TMSConnect():New()

// Intentamos la conexion
if oCon:Connect( cHost, cUser, cPwd, cDb )
/*
// Desmarca esto para ficheros de hasta 16m o cambia según convenga:

// Por defecto max_allowed_packet está a 1 Mb por lo que da el error
// si el Blob es mayor de 1Mb lo aumentamos a 16 M para evitar el error:
// "MySQL server has gone away"
oCon:Execute( "set @@global.max_allowed_packet=16*1024*1024" )
// Hacemos una reconexion para que asuma la variable cambiada:
oCon:ReConnect()
// Comprobamos las variables:
oDataSet := TMSQuery():New( oCon, "SHOW VARIABLES" )
oDataSet:Open()
GestBrw( oDataSet )
oDataSet:Free()
*/
// Si existe la tabla la borramos, sólo en esta demo ;-)
if oCon:oDataBase:DropTable( cTable )
MyMsg( "La tabla " + cTable + " ha sido borrada..." )
endif
// Creamos el objeto Tabla
oDataSet := TMSTable():New( oCon, cTable )
// Creamos la Tabla si no existe
if oDataSet:CreateTable( aStruct, cType, lTemporary, lNotExists )
MyMsg( "Tabla lista..." )
else
MyMsg( "Error en CreateTable()" )
oDataSet:Free() // Liberamos todo
oCon:Free()
Quit
endif

// Abrimos y nos traemos el resultado al cliente
if oDataSet:Open()

//--------------------------------------------------
// CREAR UN REGISTRO A PARTIR DE UN FICHERO

// Controlamos la existencia del fichero de entrada
if File( "pt18.prg" )
// Limpiamos el buffer estilo xBase
oDataSet:Blank()
// Cargamos el buffer interno con el contenido del fichero de
cualquier tipo, en este caso
// con lo que haya en TEST.IN, podria ser jpg, gif, texto,
sonido o lo que sea...
oDataSet:SetBuffer( 1, oDataSet:ReadFromFile( "pt18.prg" ) )

// Lo insertamos en la tabla
if !oDataSet:Insert( .t. )
MyMsg( "No se pudo insertar el registro..." )
end
else
MyMsg( "No encuentro el fichero de entrada..." )
endif

//--------------------------------------------------
// CREAR UN FICHERO A PARTIR DE UNA COLUMNA

if oDataSet:RecCount() > 0
// Nos vamos al primero
oDataSet:GoTop()
// Si existe el fichero de salida lo borramos
if File( "Test.txt" )
FErase( "Test.txt" )
endif
// Creamos el fichero de salida Test.out a partir de la columna
1
// que puede ser de cualquier tipo, especialmente BLOBs
if oDataSet:WriteToFile( 1, "test.txt" )
MyMsg( "Vamos a ver el fichero de salida..." )
// Lo presentamos en pantalla:
DispBox( 00, 00, 24, 79 )
MemoEdit( MemoRead( "test.txt" ), 01, 01, 23, 78, .f. )
else
MyMsg( "Error al crear el fichero de salida" )
endif
else
MyMsg( "No hay registros en la tabla..." )
endif
else
MyMsg( "Error al abrir la tabla: " + oDataSet:cName )
endif

oDataSet:Free() // Liberamos todo
oCon:Free()
else
MyMsgInfo( "No hay conexion", "Ojo" )
endif

return

//----------------------------------------------------------------------------//

#include "..\comun\SimpleBrw.prg"

//----------------------------------------------------------------------------//






--- En eagle1@yahoogroups.com, "cps_envios" <cps_envios@...> escribió:
>
> AMIGOS
> EN XBROWSE PARA MOSTRAR IMAGENES SE PONE EN UN ARREGLO TODO LOS BITMAPS
>
> oCol:AddBmpFile("bitmap\"+alltrim(cMcrut[j])+".bmp")
>
>
> Y LUEGO CON UNA CONDICION SE PINTA DEVOLVIENDO EL REGISTRO LA UBICACION DEL
ARREGLO
> PARA JALAR LA IMAGEN
>
> oBrow:aCols[xx]:bBmpData := &("{ || "+cMcrut+" }")
>
> PERO COMO SE PUEDE MOSTRAR FOTOS DE UNA LISTA DE ALUMNOS GRABADAS EN UNA BASE
DE MYSQL
>
> PREGUNTAS
> XBROWSE PUEDE MOSTRAR JPG
>
> YO TENGO UNA FUNCION QUE ME LEE LA IMAGEN DE LA BD LA DESENCRPTA CON
FMimeDec(cTemp,cTemp2)
> Y CREA UN JPG
>
> BUENO SUPONGO QUE TENDRIA QUE PRIMERO BAJAR TODAS LAS IMAGENES A UNA CARPETA
> Y LUEGO MOSTRARLAS CON XBROWSE
>
> HAY UNA FORMA DE HACERLO DIRECTO DE LA BD
>
> GRACIAS POR LA AYUDA
>
>
>
> Func vzAbrirTImagen(campo) //Para abrir una imagen GRABADA en la BD
> local cMemo:='',cTemp:='',cTemp2:=""
> SysRefresh()
> CursorWait()
> cMemo := vz(campo) //::oRsImagenes:Fields("imagen"):Value
> if !empty(cMemo)
> cTemp = 'temp\temp002.tmp'
> MEMOWRIT(cTemp,cMemo)
> if file(cTemp)
> cTemp2 = 'temp\temp003.JPG'
> FMimeDec(cTemp,cTemp2) //Esta es la funcion que nos permite leer la
imagen en la base de datos
> if !file(cTemp2)
> //MsgAlert("No ha sido posible leer la imagen de la base de datos" )
> endif
> else
> // MsgInfo("No existe la imagen del documento")
> endif
> else
> //MsgInfo("No es posible abrir la imagen del Documento" )
> EndIf
> SysRefresh()
> CursorArrow()
> Return( cTemp2 )
>





Sáb, 7 de Mar, 2009 10:57 pm

loloexpo
Sin conexión Sin conexión
Enviar mensaje Enviar mensaje

Reenviar Mensaje #1623 de 1683 |
Desplegar mensajes Autor Ordenar por fecha

AMIGOS EN XBROWSE PARA MOSTRAR IMAGENES SE PONE EN UN ARREGLO TODO LOS BITMAPS oCol:AddBmpFile("bitmap\"+alltrim(cMcrut[j])+".bmp") Y LUEGO CON UNA CONDICION...
cps_envios
Sin conexión Enviar mensaje
6 de Mar, 2009
4:55 am

Vladimir revisa estos métodos de TQuery y TTable: //----------------------------------------------------- // Gestion de campos MEMO y BLOB METHOD...
loloexpo
Sin conexión Enviar mensaje
7 de Mar, 2009
10:57 pm
Avanzado

Copyright © 2009 Yahoo! Todos los derechos reservados.
Política de Privacidad Actualizada - Condiciones del servicio - Directrices - Ayuda