HDO. Fuente de la clase que gestiona las RDL...

HDO. Fuente de la clase que gestiona las RDL...

Postby xmanuel » Thu Dec 01, 2016 7:37 pm

Algunos me habeis pedido a modo de estudio algún fuente de HDO.
Os dejo el codigo completo de la clase THDORDL que se encarga de la gestion de la RDL es com la RDDRegister de las RDD.
Como todas las clase de HDO está hecha en C completamente.

Code: Select all  Expand view  RUN

/***
 * Proyecto: Harbour Data Objects (HDO)
 * Fichero: hdoRDL.c
 * Descripcion: Gestion de de RDLs
 * Autor: Manu Exposito 2015-16
 * Fecha: 10/01/2016
 */


/*
 * Notas:
 * Solo tiene una DATA de solo lectura con una tabla Hash
 * { NOMBRE_RDL => PUNTERO_FUNCION_METODOS }
 */


#include "hdoRDL.h"

/***
 * Definicion de la clase con atributos y metodos
 */


CREATE_CLASS( "THDORDL", THDORDL, THDORDL_IVARCOUNT )
{
    /* Metodos */
    METHOD( "NEW",              THDORDL_NEW )
    METHOD( "REGISTER",         THDORDL_REGISTER )
    METHOD( "LIST",             THDORDL_LIST )
    METHOD( "ISREGISTERED",     THDORDL_ISREGISTERED )
    METHOD( "GETPOS",           THDORDL_GETPOS )
    METHOD( "GETNAME",          THDORDL_GETNAME )
    METHOD( "GETPFUNCBYNAME",   THDORDL_GETPFUNCBYNAME )
}
END_CLASS

/***
 * Metodo: NEW
 * Uso: Constructor de la clase
 * Parametros: Ninguno
 * Devuelve: Self, un objeto inicializado
 */


HB_METHOD( THDORDL_NEW )
{
    PHB_ITEM pSelf = hb_pSelf();

    PHB_ITEM pd = hb_hashNew( NULL );
    PHB_ITEM pKey = hb_itemNew( NULL );
    PHB_ITEM pValue = hb_itemNew( NULL );

    hb_hashClearFlags( pd, HB_HASH_BINARY );
    hb_hashSetFlags( pd, HB_HASH_IGNORECASE | HB_HASH_RESORT );

    hdo_listRDL( pd, pKey, pValue );

    hb_itemRelease( pKey );
    hb_itemRelease( pValue );

    hb_arraySetForward( pSelf, IVAR_HASHRDL, pd );

    hb_itemRelease( pd );

    /* Devuelve SELF */
    hb_itemReturnRelease( pSelf );
}

/***
 * Metodo: LIST
 * Uso: Consulta de RDL registrados
 * Parametros: Ninguno
 * Devuelve: Array con los RDLs registrados
 */


HB_METHOD( THDORDL_LIST )
{
    PHB_ITEM pd = hb_getHRDL();

    if( pd )
    {
        hb_itemReturnRelease( hb_hashGetKeys( pd ) );
    }
    else
    {
        hb_ret();
    }
}

/***
 * Metodo: REGISTER
 * Uso: Registra un RDL si no existe
 * Parametros: El nombre del RDL y un puntero a la funcion del RDL
 * Devuelve: Nada
 */


HB_METHOD( THDORDL_REGISTER )
{
    PHB_ITEM pd = hb_getHRDL();

    if( pd )
    {
        PHB_ITEM pKey = hb_param( 1, HB_IT_STRING );
        PHB_ITEM pValue = hb_param( 2, HB_IT_POINTER );

        if( pKey )
        {
            hb_hashAdd( pd, pKey, pValue );
        }
    }
}

/***
 * Metodo: ISREGISTERED
 * Uso: Comprueba si un RDL esta registrado
 * Parametros: Nombre del RDL
 * Devuelve: Valor logico indicando si existe o no
 */


HB_METHOD( THDORDL_ISREGISTERED )
{
    PHB_ITEM pd = hb_getHRDL();
    HB_BOOL bRet = HB_FALSE;

    if( pd )
    {
        PHB_ITEM pKey = hb_param( 1, HB_IT_STRING );

        if( pKey )
        {
            bRet = ( hb_hashGetCItemPos( pd, pKey ) != 0 );
        }
    }

    hb_retl( bRet );
}

/***
 * Metodo: GETPOS
 * Uso: Comprueba la posicion que ocupa un RDL
 * Parametros: Nombre del RDL
 * Devuelve: La posicion o 0 encaso de no estar registrado
 */


HB_METHOD( THDORDL_GETPOS )
{
    PHB_ITEM pd = hb_getHRDL();
    HB_SIZE nRet = 0;

    if( pd )
    {
        PHB_ITEM pKey = hb_param( 1, HB_IT_STRING );

        if( pKey )
        {
            nRet = hb_hashGetCItemPos( pd, pKey );

        }
    }

    hb_retni( nRet );
}

/***
 * Metodo: GETNAME
 * Uso: Consultar el nombre de un RDL por la posicion que ocupa
 * Parametros: Entero positivo
 * Devuelve: El nombre del RDL si esta registrado o NULL si no lo esta
 */


HB_METHOD( THDORDL_GETNAME )
{
    PHB_ITEM pd = hb_getHRDL();
    PHB_ITEM pRet = NULL;

    if( pd )
    {
        HB_USHORT nPos = hb_parni( 1 );

        if( nPos >= 1 )          /* Controlar el LEN del array */
        {
            pRet = hb_hashGetKeyAt( pd, nPos );
        }
    }

    hb_itemReturnRelease( pRet );
}

/***
 * Metodo: GETPFUNCBYNAME
 * Uso: Comprueba la posicion que ocupa un RDL
 * Parametros: Nombre del RDL
 * Devuelve: La posicion o 0 encaso de no estar registrado
 */


HB_METHOD( THDORDL_GETPFUNCBYNAME )
{
    PHB_ITEM pd = hb_getHRDL();
    PHB_ITEM pValue = NULL;

    if( pd )
    {
        PHB_ITEM pKey = hb_param( 1, HB_IT_STRING );

        if( pKey )
        {
            pValue = hb_hashGetItemPtr( pd, pKey, HB_HASH_AUTOADD_ACCESS );
        }
    }

    hb_itemReturn( pValue );
}


 
______________________________________________________________________________
Sevilla - Andalucía
xmanuel
 
Posts: 763
Joined: Sun Jun 15, 2008 7:47 pm
Location: Sevilla

Re: HDO. Fuente de la clase que gestiona las RDL...

Postby Ariel » Fri Dec 02, 2016 9:01 am

Hola Manuel,
pregunta, los fuentes de la clase (sean .c o .prg o .loquesea), estaran disponibles para todos como la TDolphin?, en caso de que no, la clase tiene algun costo?, en caso de que no tenga costo... pues porque no liberas los fuentes?
Gracias.
Saludos.
Ariel
 
Posts: 377
Joined: Wed Nov 29, 2006 1:51 pm
Location: Rosario - Argentina

Re: HDO. Fuente de la clase que gestiona las RDL...

Postby xmanuel » Wed Dec 14, 2016 11:20 pm

:D
______________________________________________________________________________
Sevilla - Andalucía
xmanuel
 
Posts: 763
Joined: Sun Jun 15, 2008 7:47 pm
Location: Sevilla

Re: HDO. Fuente de la clase que gestiona las RDL...

Postby Ariel » Thu Dec 15, 2016 10:35 am

???
Ariel
 
Posts: 377
Joined: Wed Nov 29, 2006 1:51 pm
Location: Rosario - Argentina

Re: HDO. Fuente de la clase que gestiona las RDL...

Postby Compuin » Thu Dec 15, 2016 4:11 pm

Hay algun sentido en pagar o tener una clase cerrada si FWH ya da soporte a MySQL, MariaDB y MSSQL ? Incluso con xHarbour puyedes conectar a otros motores como PostgreSQL ?
FWH 20.12
Hbmk2 32/64 Bits (Build 19.29.30133)
Microsoft Visual C 32 Bits
MySql 8.0.24 32/64 Bits
VS Code
Compuin
 
Posts: 1214
Joined: Tue Dec 28, 2010 1:29 pm
Location: Quebec, Canada

Re: HDO. Fuente de la clase que gestiona las RDL...

Postby hmpaquito » Fri Dec 16, 2016 8:23 am

Compuin wrote:Hay algun sentido en pagar o tener una clase cerrada si FWH ya da soporte a MySQL, MariaDB y MSSQL ? Incluso con xHarbour puyedes conectar a otros motores como PostgreSQL ?


Si mucho, si lo que te ofrecen es un controlador multi base de datos y además con una tremenda velocidad.
hmpaquito
 
Posts: 1482
Joined: Thu Oct 30, 2008 2:37 pm

Re: HDO. Fuente de la clase que gestiona las RDL...

Postby Compuin » Fri Dec 16, 2016 1:09 pm

Si el soporte va a ser como Eagle1, no gracias
FWH 20.12
Hbmk2 32/64 Bits (Build 19.29.30133)
Microsoft Visual C 32 Bits
MySql 8.0.24 32/64 Bits
VS Code
Compuin
 
Posts: 1214
Joined: Tue Dec 28, 2010 1:29 pm
Location: Quebec, Canada

Re: HDO. Fuente de la clase que gestiona las RDL...

Postby xmanuel » Fri Dec 16, 2016 10:05 pm

Alguien ha tenido algún problema con Eagle1?
He contestado a todo el mundo, he implementado todo lo que me han ido pidiendo... eso ha hecho grande a E1.
Incluso me he puesto a hacer partes de los proyectos de los usuarios. :shock: :shock:
El mantenimiento ha sido continuado (no por 6 meses o un año sino para siempre) por el foro de E1, por email particulares y por llamadas de telefono a la gente de España.
Hay usurios de E1 por todo el mundo y a mi nadie se me ha quejado...
Hay aplicaciones hechas con FWH y E1 funcionando a tope por todo el mundo en bufetes de abogados, cadenas de gasolineras, tiendas de neumaticos, talleres, contabilidades, facturaciones etc etc...
Así que no sé qué quieres decir :(

He hecho campañas de venta de E1 que consistían en que me mandaran una copia de un donativo a alguna institución de niños huerfanos o con algún problema.
He regalado E1 a la gente que me ha dicho que no lo podía pagar...

Sé que E1 ha servido de modelo a otros proyectos...

Por otro lado, en este foro creo he ayudado a los compañeros que lo han necesitado todo lo que he podido y la gente que me conoce lo sabe.

Cuando me enfrasco en un proyecto lo hago con mucho esfuerzo para que sea util a todo el que lo usa y tengan buenas exeriencias.
______________________________________________________________________________
Sevilla - Andalucía
xmanuel
 
Posts: 763
Joined: Sun Jun 15, 2008 7:47 pm
Location: Sevilla

Re: HDO. Fuente de la clase que gestiona las RDL...

Postby Compuin » Fri Dec 16, 2016 10:27 pm

Lo que quise decir, y me disculpo porque me hice mal interpretar, es que el soporte con E1 en mi caso no fue satisfactorio. Reconozco que el costo es irrisorio, pero el tema del soporte es lo que me inquieta
FWH 20.12
Hbmk2 32/64 Bits (Build 19.29.30133)
Microsoft Visual C 32 Bits
MySql 8.0.24 32/64 Bits
VS Code
Compuin
 
Posts: 1214
Joined: Tue Dec 28, 2010 1:29 pm
Location: Quebec, Canada

Re: HDO. Fuente de la clase que gestiona las RDL...

Postby xmanuel » Sat Dec 17, 2016 9:57 am

Pues tendré que cambiar esos fallos y mejorar... a ver que nos innovamos.
Gracias por tu aportación. :oops: :D
______________________________________________________________________________
Sevilla - Andalucía
xmanuel
 
Posts: 763
Joined: Sun Jun 15, 2008 7:47 pm
Location: Sevilla

Re: HDO. Fuente de la clase que gestiona las RDL...

Postby russimicro » Sat Dec 17, 2016 11:54 am

Buen día...

Uso E1, por mas de 10 años, sincronizo 35 puntos de ventas (DBF ->MYSQL ..... MYSQL -> DBF), en segundos tengo actualizados todos mis puntos locales-DBF, nunca me he quedado varado. Si un producto es bueno y te genera ingresos,,,, por que no pagar.

Saludos

JOHNSON RUSSI
Colombia
russimicro
 
Posts: 262
Joined: Sun Jan 31, 2010 3:30 pm
Location: Bucaramanga - Colombia

Re: HDO. Fuente de la clase que gestiona las RDL...

Postby csincuir » Sat Dec 17, 2016 12:27 pm

Hola,
Yo he usado E1 por mas de 12 años ya, y con la ayuda y soporte que recibi de Manu al inicio, y su trabajo con E1, me sirvio de mucho para cambiar mi sistema que usaba DBF's a MySQL y adentrarme al mundo del SQL.
Hasta el dia de hoy no he necesitado de otra herramienta o clase, para acceder a MySQL o MariaDB desde FWH, E1 hace todo lo que necesito.

Saludos desde Guatemala.

Carlos.
csincuir
 
Posts: 411
Joined: Sat Feb 03, 2007 6:36 am
Location: Guatemala

Re: HDO. Fuente de la clase que gestiona las RDL...

Postby Compuin » Sun Dec 18, 2016 12:29 am

Como lo dije para los amigos que no leyeron bien, el tema no es costo, el tema es soporte.
FWH 20.12
Hbmk2 32/64 Bits (Build 19.29.30133)
Microsoft Visual C 32 Bits
MySql 8.0.24 32/64 Bits
VS Code
Compuin
 
Posts: 1214
Joined: Tue Dec 28, 2010 1:29 pm
Location: Quebec, Canada

Re: HDO. Fuente de la clase que gestiona las RDL...

Postby russimicro » Sun Dec 18, 2016 2:20 pm

Uso E1, por mas de 10 años, y solo lo he llamado para consignarle el valor de las actualizaciones, nunca he requerido soporte para el funcionamiento
russimicro
 
Posts: 262
Joined: Sun Jan 31, 2010 3:30 pm
Location: Bucaramanga - Colombia

Re: HDO. Fuente de la clase que gestiona las RDL...

Postby lucasdebeltran » Tue Dec 20, 2016 9:29 am

Pero sigue sin responder a lo fundamental: si los fuentes vienen incluidos o no, y qué precio tienen...
Muchas gracias. Many thanks.

Un saludo, Best regards,

Harbour 3.2.0dev, Borland C++ 5.82 y FWH 13.06 [producción]

Implementando MSVC 2010, FWH64 y ADO.

Abandonando uso xHarbour y SQLRDD.
User avatar
lucasdebeltran
 
Posts: 1303
Joined: Tue Jul 21, 2009 8:12 am

Next

Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 6 guests