...
IF lNuevo
/*inicializa variables*/
cCodigo := StrZero( CTRL->NUM_ALU + 1, 6 )
/*carga buffer del alumno con datos en blanco*/
oDBAlumno:blank()
/*modifica algunos datos a valores por defecto en el buffer*/
oDBAlumno:codigo := cCodigo
/*carga la foto*/
Alumnos_LoadPhoto()
/*titulo del dialogo*/
cTitulo := " Alumno No. : " + oDBAlumno:codigo
ELSE
/*verifica su tabla esta vacia*/
IF ALUM->( Eof() )
/*muestra mensaje indicando que tabla de datos esta vacia*/
MsgAlert( "No existen alumnos registrados, nada que editar!", "Tabla vacia!" )
RETURN
ENDIF
/*carga buffer con los datos de la tabla*/
oDBAlumno:load()
/*carga la foto*/
Alumnos_LoadPhoto()
/*titulo del dialogo*/
cTitulo := " Alumno No. : " + oDBAlumno:codigo + " (" + RTrim( oDBAlumno:nombre ) + ")"
ENDIF
DEFINE DIALOG ......
REDEFINE IMAGE oFoto ID 108 OF PAGE1 FILENAME cFoto ADJUST
REDEFINE BUTTON ID 109 OF PAGE1 ACTION Alumnos_SetPhoto()
REDEFINE BUTTON ID 110 OF PAGE1 ACTION Alumnos_ClearPhoto()
...
PROCEDURE Alumnos_SetPhoto()
LOCAL cFotoPict := ".\MYPICT.JPG"
LOCAL cPictFile := cGetFile( "JPEG (*.jpg)| *.jpg|" + ;
"PNG (*.png)| *.png|" + ;
"BMP (*.bmp)| *.bmp|" + ;
"All Files (*.*)| *.*" , ;
"Seleccione una foto en JPG o PNG", 3, GetFolderMyPictures() )
/*si selecciono una foto*/
IF !Empty( cPictFile ) .and. File( cPictFile )
/*la foto seleccionada se carga en una variable y se pasa al buffer del alumno*/
oDBAlumno:foto := FileStr( cPictFile )
/*graba foto a un archivo local*/
StrFile( oDBAlumno:foto, cFotoPict )
/*se indica que la foto a mostrase es la que se acaba de guardar a disco*/
cFoto := cFotoPict
/*se muestra la foto*/
oFoto:LoadBmp( cFoto )
ENDIF
RETURN
/*-------------------------------------------------------------------------------------------------*/
PROCEDURE Alumnos_LoadPhoto( lShow )
LOCAL cFotoTemp := ".\NOPICT.JPG"
LOCAL cFotoPict := ".\MYPICT.JPG"
/*por defecto no se muestra la foto*/
DEFAULT lShow := FALSE
/*si el buffer de la foto no esta vacio*/
IF !Empty( oDBAlumno:foto )
/*graba foto a un archivo local*/
StrFile( oDBAlumno:foto, cFotoPict )
/*se indica que la foto a mostrase es la que se acaba de guardar a disco*/
cFoto := cFotoPict
ELSE
/*se indica que la foto que se mostrara es la vacia por defecto*/
cFoto := cFotoTemp
ENDIF
/*si pidio que se muestre*/
IF lShow
oFoto:LoadBmp( cFoto )
ENDIF
RETURN
/*-------------------------------------------------------------------------------------------------*/
PROCEDURE Alumnos_ClearPhoto()
LOCAL cFotoTemp := ".\NOPICT.JPG"
/*limpia buffer de la foto*/
oDBAlumno:foto := ""
/*se indica que la foto que se mostrara es la por defecto*/
cFoto := cFotoTemp
/*se muestra la foto*/
oFoto:LoadBmp( cFoto )
RETURN
/*-------------------------------------------------------------------------------------------------*/
PROCEDURE Alumnos_GetPhoto()
/*TODO:Get Photo from webcam, this is for version 2.0 :-)*/
RETURN
/*-------------------------------------------------------------------------------------------------*/
foto mediumblob NULL YES (NULL)
...
`cedula` varchar(16) default NULL,
`foto` mediumblob,
`direccion` varchar(60) default NULL,
/*-------------------------------------------------------------------------------------------------*/
/*abre tablas segun motor de datos*/
FUNCTION AbrirTablas( lShared )
#ifndef __SQLRDD__
IF !AbrirTablas_ADS( lShared )
RETURN FALSE
ENDIF
#else
IF !AbrirTablas_MYSQL( lShared )
RETURN FALSE
ENDIF
#endif
RETURN TRUE
/*-------------------------------------------------------------------------------------------------*/
/**/
PROCEDURE CrearTabla_Alumnos()
LOCAL aEstruc := {}
aadd( aestruc, { "codigo", "c", 06, 00 } ) //codigo de alumno (incremental)
...
aadd( aestruc, { "cedula", "c", 16, 00 } ) //numero de cedula
aadd( aestruc, { "foto", "m", 10, 00 } )
...
index on codigo tag codigo for !deleted()
...
DBCloseAll()
RETURN
Willi Quintana wrote:Que usas para acceder a MySQL, estan EAGLE1, TMySQL, TDophin, ADO, y otras mas,,, que trabajan juntamente con FW.
Salu2
#include 'fivewin.ch'
#define P_SERVER 'localhost'
#define P_USER 'root'
#define P_PASSW 'pol'
#define P_PORT 3306
#define P_FLAGS 0
#define P_DBNAME 'test'
STATIC oDb
*--------------
FUNCTION Main()
*--------------
LOCAL cFile, uData, cSql
IF !ConectaDb()
RETU NIL
ENDIF
cFile := cGetFile( '*.*' )
IF !File( cFile )
RETU NIL
ENDIF
uData := D_ReadFile( cFile )
uData := Val2Escape( uData )
uData := ClipValue2Sql( uData )
cSql := "INSERT INTO image SET data = " + uData
MsgInfo( oDb:execute( cSql ) )
RETU NIL
*-------------------
FUNCTION ConectaDb()
*-------------------
oDb := TDolphinSrv():New( P_SERVER, P_USER, P_PASSW, P_PORT, ;
P_FLAGS, P_DBNAME, ;
{| oServer, nError, lInternal | GetError( oServer, nError, lInternal ) } )
RETU !oDb:lError
*-----------------------------------------------------
STATIC FUNCTION GetError( oServer, nError, lInternal )
*-----------------------------------------------------
LOCAL cText := ""
cText += "Descripcio:" + Chr( VK_TAB ) + oServer:ErrorTxt() + CRLF
cText += "Error No: " + Chr( VK_TAB ) + ltrim(Str( nError )) + CRLF
cText += "Internal: " + Chr( VK_TAB ) + If( lInternal, "Yes", "No" ) + CRLF
MsgAlert( cText, 'Error en conexio a MySql' )
RETU NIL
CREATE TABLE IF NOT EXISTS `image` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`data` longblob NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
Return to FiveWin para Harbour/xHarbour
Users browsing this forum: Google [Bot] and 70 guests