FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour HDO. Fuente de la clase que gestiona las RDL...
Posts: 817
Joined: Sun Jun 15, 2008 07:47 PM
HDO. Fuente de la clase que gestiona las RDL...
Posted: Thu Dec 01, 2016 07: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 (fw): Select all Collapse
/***
 * 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
Posts: 389
Joined: Wed Nov 29, 2006 01:51 PM
Re: HDO. Fuente de la clase que gestiona las RDL...
Posted: Fri Dec 02, 2016 09: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.

Posts: 817
Joined: Sun Jun 15, 2008 07:47 PM
Re: HDO. Fuente de la clase que gestiona las RDL...
Posted: Wed Dec 14, 2016 11:20 PM

:D

______________________________________________________________________________

Sevilla - Andalucía
Posts: 389
Joined: Wed Nov 29, 2006 01:51 PM
Re: HDO. Fuente de la clase que gestiona las RDL...
Posted: Thu Dec 15, 2016 10:35 AM

???

Posts: 1276
Joined: Tue Dec 28, 2010 01:29 PM
Re: HDO. Fuente de la clase que gestiona las RDL...
Posted: Thu Dec 15, 2016 04: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 25.12

Harbour/Hbmk2

Microsoft Visual C++

MySql 8.0

Antigravity

Posts: 1515
Joined: Thu Oct 30, 2008 02:37 PM
Re: HDO. Fuente de la clase que gestiona las RDL...
Posted: Fri Dec 16, 2016 08: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.
Posts: 1276
Joined: Tue Dec 28, 2010 01:29 PM
Re: HDO. Fuente de la clase que gestiona las RDL...
Posted: Fri Dec 16, 2016 01:09 PM

Si el soporte va a ser como Eagle1, no gracias

FWH 25.12

Harbour/Hbmk2

Microsoft Visual C++

MySql 8.0

Antigravity

Posts: 817
Joined: Sun Jun 15, 2008 07:47 PM
Re: HDO. Fuente de la clase que gestiona las RDL...
Posted: 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
Posts: 1276
Joined: Tue Dec 28, 2010 01:29 PM
Re: HDO. Fuente de la clase que gestiona las RDL...
Posted: 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 25.12

Harbour/Hbmk2

Microsoft Visual C++

MySql 8.0

Antigravity

Posts: 817
Joined: Sun Jun 15, 2008 07:47 PM
Re: HDO. Fuente de la clase que gestiona las RDL...
Posted: Sat Dec 17, 2016 09: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
Posts: 410
Joined: Sun Jan 31, 2010 03:30 PM
Re: HDO. Fuente de la clase que gestiona las RDL...
Posted: 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

Posts: 476
Joined: Sat Feb 03, 2007 06:36 AM
Re: HDO. Fuente de la clase que gestiona las RDL...
Posted: 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.

Posts: 1276
Joined: Tue Dec 28, 2010 01:29 PM
Re: HDO. Fuente de la clase que gestiona las RDL...
Posted: 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 25.12

Harbour/Hbmk2

Microsoft Visual C++

MySql 8.0

Antigravity

Posts: 410
Joined: Sun Jan 31, 2010 03:30 PM
Re: HDO. Fuente de la clase que gestiona las RDL...
Posted: Sun Dec 18, 2016 02: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

Posts: 1303
Joined: Tue Jul 21, 2009 08:12 AM
Re: HDO. Fuente de la clase que gestiona las RDL...
Posted: Tue Dec 20, 2016 09: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.