FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour TDbf PRO disponible...
Posts: 817
Joined: Sun Jun 15, 2008 07:47 PM
TDbf PRO disponible...
Posted: Fri Aug 29, 2014 03:12 PM

TDbf PRO disponible en fase beta.

Las caracteristicas principales es que está hecha al 100% en C
El buffer es ahora una tabla hash (Array asociativo)
Y como siempre se podrá usar con FWH de 32 y 64!!!

Muy proto más información en https://es.groups.yahoo.com/neo/groups/tdbfpro/info :wink:

______________________________________________________________________________

Sevilla - Andalucía
Posts: 817
Joined: Sun Jun 15, 2008 07:47 PM
Re: TDbf PRO disponible...
Posted: Fri Aug 29, 2014 03:23 PM

Por cierto, ahora es el momento que pidais cosas!!!!

______________________________________________________________________________

Sevilla - Andalucía
Posts: 1283
Joined: Fri Feb 10, 2006 02:34 PM
Re: TDbf PRO disponible...
Posted: Fri Aug 29, 2014 04:23 PM

Gracias !!!

Puedes explicar q hace ? :D (controlar dbfs...)

Salutacions, saludos, regards

"...programar es fácil, hacer programas es difícil..."

UT Page -> https://carles9000.github.io/
Forum UT -> https://discord.gg/bq8a9yGMWh
HIX -> https://github.com/carles9000/hix
Posts: 817
Joined: Sun Jun 15, 2008 07:47 PM
Re: TDbf PRO disponible...
Posted: Sat Aug 30, 2014 09:39 AM
Sí, controla DBF. Lo novedoso es como esta hecha la clase, 100% en lenguaje C. Eso hace que sea mucho más rápida.
Puedes manejar una DBF como un objeto.ç
Tienes un buffer que hace innecesario el uso de variables intermadias.
Bueno tiene más caracteristicas que iré desgranando.

En el foro de TDBF_PRO he puesto un ejemplo: https://es.groups.yahoo.com/neo/groups/tdbfpro/files/Ejemplos%20TDbf%20PRO/
Usa test.dbf de samples que viene con harbour, pero si no esta en el directorio la crea automaticamente pero vacía...

Saludos
______________________________________________________________________________

Sevilla - Andalucía
Posts: 1078
Joined: Thu Sep 27, 2007 03:47 PM
Re: TDbf PRO disponible...
Posted: Sun Aug 31, 2014 12:10 AM

No hay nada, porque no lo colocas en este fórum

Ruben Dario Gonzalez
Cali-Colombia
rubendariogd@hotmail.com - rubendariogd@gmail.com
Posts: 817
Joined: Sun Jun 15, 2008 07:47 PM
Re: TDbf PRO disponible...
Posted: Mon Sep 01, 2014 10:48 PM

Te garantizo que sí hay!!!

https://es.groups.yahoo.com/neo/groups/ ... RO%20DEMO/

Lo pondré aquí si Antonio lo permite ;-)

______________________________________________________________________________

Sevilla - Andalucía
Posts: 625
Joined: Wed Mar 14, 2007 06:49 PM
Re: TDbf PRO disponible...
Posted: Tue Sep 02, 2014 12:51 AM

Nop no hay nada, hay que darse de alta o ser usuario de Yahoo para ver la pagina.. Mejor subelo a otro servidor gratuito..

Saludos..

Soluciones y Diseño de Software
Damos Soluciones...

I.S.C. Victor Daniel Cuatecatl Leon
Director y Diseñador de Proyectos

http://www.soldisoft.unlugar.com
http://www.sisa.unlugar.com
danyleon82@hotmail.com
www.facebook.com/victordaniel.cuatecatlleon
Posts: 1078
Joined: Thu Sep 27, 2007 03:47 PM
Re: TDbf PRO disponible...
Posted: Tue Sep 02, 2014 02:23 AM

Soy Usuario de Yahoo , pero no muestra anda

Ruben Dario Gonzalez
Cali-Colombia
rubendariogd@hotmail.com - rubendariogd@gmail.com
Posts: 1710
Joined: Tue Oct 28, 2008 06:26 PM
Re: TDbf PRO disponible...
Posted: Tue Sep 02, 2014 10:06 AM

Manuel

Ya cree un usuario Yahoo.es y no muestra nada.

Saludos,

Adhemar

Saludos,



Adhemar C.
Posts: 817
Joined: Sun Jun 15, 2008 07:47 PM
Re: TDbf PRO disponible...
Posted: Tue Sep 02, 2014 10:41 AM

Haz una petición de entrada en mi grupo de TDbfPRO de Yahoo y te la apruebo...

______________________________________________________________________________

Sevilla - Andalucía
Posts: 518
Joined: Fri Jun 29, 2012 12:49 PM
Re: TDbf PRO disponible...
Posted: Tue Sep 02, 2014 01:17 PM

xManuel,

La clase es gratuita o es de paga?.

Yo ahora mismo preferentemente uso ADO y estamos dejando las dbfs.

Posts: 1710
Joined: Tue Oct 28, 2008 06:26 PM
Re: TDbf PRO disponible...
Posted: Tue Sep 02, 2014 01:25 PM

Perfecto

Ya la bajé.

Gracias.

Saludos,

Adhemar

Saludos,



Adhemar C.
Posts: 1078
Joined: Thu Sep 27, 2007 03:47 PM
Re: TDbf PRO disponible...
Posted: Tue Sep 02, 2014 02:11 PM

Ya la baje , solamente esta el ejecutable mas no la clase , dicha clase es gratuita o de paga.

EN realidad emigre todos los DBF a otro motor de base de datos que es gratuito como MARIAB

Gracias

Ruben Dario Gonzalez
Cali-Colombia
rubendariogd@hotmail.com - rubendariogd@gmail.com
Posts: 817
Joined: Sun Jun 15, 2008 07:47 PM
Re: TDbf PRO disponible...
Posted: Wed Sep 03, 2014 08:24 AM
Es eso, un ejemplo. Viene el fuente del mismo con la propuesta de tipo de programación que yo haría y el ejecutable.
La definicion en lenguaje C usando el preprocesador es la que pongo más abajo. Me gustaría que si veis un método que pueda faltar que me lo diga :-)

Code (fw): Select all Collapse
CREATE_CLASS( "TCDBF", TCDBF, TCDBF_IVARCOUNT )

// Datas:
    VAR( "BUFFER", TCDBF_BUFFER, TCDBF_VNULL ); // Solo lectura

// Metodos de área de trabajo / gestión de base de datos:
    METHOD( "NEW", TCDBF_INIT );
    METHOD( "CREATE", DBCREATE );
    METHOD( "SELECT", TCDBF_SELECT );
    METHOD( "OPEN", TCDBF_OPEN );
    METHOD( "CLOSE", TCDBF_CLOSE );
    METHOD( "EVAL", TCDBF_EVAL );
    METHOD( "INFO", TCDBF_INFO );
    METHOD( "PACK", TCDBF_PACK );
    METHOD( "SYSNAME", TCDBF_SYSNAME );
    METHOD( "ZAP", TCDBF_ZAP );
    METHOD( "USED", TCDBF_USED );
    METHOD( "ISOPEN", TCDBF_USED );
    METHOD( "FREE", TCDBF_FREE );

    METHOD( "ALIAS", TCDBF_ALIAS );
    METHOD( "GETAREA", TCDBF_GETAREA );

// MEtodos de bloqueos en red
    METHOD( "RECLOCK", TCDBF_RECLOCK );
    METHOD( "FLOCK", TCDBF_FLOCK );
    METHOD( "UNLOCK", TCDBF_UNLOCK );

// Metodos no Area de trabajo
    METHOD( "DROP", HB_DBDROP );
    METHOD( "EXISTS", HB_DBEXISTS );
    METHOD( "RENAME", HB_DBRENAME );

// Metodos de moviemiento y posicion:
    METHOD( "EOF", TCDBF_EOF );
    METHOD( "BOF", TCDBF_BOF );
    METHOD( "GOTOP", TCDBF_GOTOP );
    METHOD( "GOBOTTOM", TCDBF_GOBOTTOM );
    METHOD( "SKIP", TCDBF_SKIP );
    METHOD( "FOUND", TCDBF_FOUND );
    METHOD( "GOTO", TCDBF_GOTO );
    METHOD( "SEEK", TCDBF_SEEK );

// Metodos de gestion de datos:
    METHOD( "APPEND", TCDBF_APPEND );
    METHOD( "DELETE", TCDBF_DELETE );
    METHOD( "DELETED", TCDBF_DELETED );
    METHOD( "ISSELECTED", TCDBF_ISSELECTED );
    METHOD( "FIELDCOUNT", TCDBF_FIELDCOUNT );
    METHOD( "FIELDGET", TCDBF_FIELDGET );
    METHOD( "FIELDPUT", TCDBF_FIELDPUT );
    METHOD( "FIELDLEN", TCDBF_FIELDLEN );
    METHOD( "FIELDINFO", TCDBF_FIELDINFO );
    METHOD( "FIELDNAME", TCDBF_FIELDNAME );
    METHOD( "RECNO", TCDBF_RECNO );
    METHOD( "RECCOUNT", TCDBF_RECCOUNT );
    METHOD( "COMMIT", TCDBF_COMMIT );
    METHOD( "RECALL", TCDBF_RECALL );
    METHOD( "RECINFO", TCDBF_RECINFO );

// Métodos de gestion de relaciones
    METHOD( "SETRELATION", TCDBF_SETRELATION );
    METHOD( "CLEARRELATION", TCDBF_CLEARRELATION );
    METHOD( "RELAREA", TCDBF_RELAREA );
    METHOD( "RELTEXT", TCDBF_RELTEXT );

// Métodos de gestión de ordenaciones
    METHOD( "ORDCREATE", TCDBF_ORDCREATE );
    METHOD( "ORDLISTREBUILD", TCDBF_ORDLISTREBUILD );
    METHOD( "ORDLISTADD", TCDBF_ORDLISTADD );
    METHOD( "ORDLISTCLEAR", TCDBF_ORDLISTCLEAR );
    METHOD( "ORDSETFOCUS", TCDBF_ORDSETFOCUS );

// Basadas en ORDINFO:
    METHOD( "ORDINFO", TCDBF_ORDINFO ); // Utilizar para todo lo que se pueda
    METHOD( "ORDKEYCOUNT", TCDBF_ORDKEYCOUNT );
    METHOD( "ORDFULLPATH", TCDBF_FULLPATH );
    METHOD( "ORDKEY", TCDBF_ORDKEY );
    METHOD( "ORDNAME", TCDBF_ORDNAME );
    METHOD( "ORDBAGNAME", TCDBF_ORDBAGNAME );
    METHOD( "ORDBAGEXT", TCDBF_ORDBAGEXT );
    METHOD( "ORDCOND", TCDBF_ORDCOND );
    METHOD( "ORDNUMBER", TCDBF_ORDNUMBER );
    METHOD( "ORDCOUNT", TCDBF_ORDCOUNT );
    METHOD( "ORDKEYNO", TCDBF_ORDKEYNO );
    METHOD( "ORDKEYGOTO", TCDBF_ORDKEYGOTO );
    METHOD( "ORDKEYRELPOS", TCDBF_ORDKEYRELPOS );
    METHOD( "ORDFINDREC", TCDBF_ORDFINDREC );
    METHOD( "ORDKEYVAL", TCDBF_ORDKEYVAL );

// Metodos de gestion de filtros y scopes
    METHOD( "SETSCOPETOP", TCDBF_SETSCOPETOP );
    METHOD( "SETSCOPEBOTTOM", TCDBF_SETSCOPEBOTTOM );
    METHOD( "SETFILTER", TCDBF_SETFILTER );
    METHOD( "CLEARFILTER", TCDBF_CLEARFILTER );
    METHOD( "LOCATE", TCDBF_LOCATE );
    METHOD( "SETLOCATE", TCDBF_SETLOCATE );
    METHOD( "CONTINUE", TCDBF_CONTINUE );
    METHOD( "CLEARLOCATE", TCDBF_CLEARLOCATE );
    METHOD( "FILTERTEXT", TCDBF_FILTERTEXT );

//  Metodos de manejo de campos MEMO y BLOB
    METHOD( "GETVALUEFILE", TCDBF_GETVALUEFILE );
    METHOD( "PUTVALUEFILE", TCDBF_PUTVALUEFILE );

//------------------------------------------------------------------------------
// Metodos del buffer (hash table)
    METHOD( "LOAD", TCDBF_LOAD );
    METHOD( "SAVE", TCDBF_SAVE );
    METHOD( "UPDATE", TCDBF_UPDATE );
    METHOD( "INSERT", TCDBF_INSERT );
    METHOD( "REMOVE", TCDBF_REMOVE );
    METHOD( "BUFFERLEN", TCDBF_BUFFERLEN );
    METHOD( "BUFFERKEYAT", TCDBF_BUFFERKEYAT );
    METHOD( "BUFFERKEYS", TCDBF_BUFFERKEYS );
    METHOD( "GETBUFFER", TCDBF_GETBUFFER );
    METHOD( "GETBUFFERAT", TCDBF_GETBUFFERAT );
    METHOD( "SETBUFFER", TCDBF_SETBUFFER );
    METHOD( "SETBUFFERAT", TCDBF_SETBUFFERAT );
    METHOD( "ABUFFER", TCDBF_ABUFFER );
    METHOD( "BLANK", TCDBF_BLANK );
    METHOD( "SETBUFKEYCASEMATCH", TCDBF_SETBUFKEYCASEMATCH );

END_CLASS


Y como ejemplo de implementación te pongo el método constructor new() :
Code (fw): Select all Collapse
//------------------------------------------------------------------------------
// Metodo: new()
// Uso: Constructor de la clase
// Devuelve: el objeto

HB_FUNC_STATIC( TCDBF_INIT )
{
    PHB_ITEM pSelf = hb_pSelf();

    if( pSelf )
    {
        TDBFP pTDbf = hb_xgrab( sizeof( TDBF ) );
        const char * szDFName = hb_parc( 1 );

        pTDbf->pArea = NULL;
        pTDbf->szDataFileName = NULL;
        pTDbf->pBuffer = NULL;

        if( szDFName )
        {
            pTDbf->szDataFileName = hb_strdup( szDFName );
        }

        // Asigna la estructura recien creada a la clase
        hb_arraySetPtr( pSelf, TCDBF_DATA_STRUCT, pTDbf );
    }

    // Un constructor siempre devuelve SELF
    hb_itemReturn( pSelf );
}

Salu2
______________________________________________________________________________

Sevilla - Andalucía
Posts: 817
Joined: Sun Jun 15, 2008 07:47 PM
Re: TDbf PRO disponible...
Posted: Wed Sep 03, 2014 12:31 PM

La base de como está construida TDbfPRO está en una conversación con Antonio en el foro.
Busca "Enviando un mensaje a un objeto desde bajo nivel"

______________________________________________________________________________

Sevilla - Andalucía