TDbf PRO disponible...

xmanuel
Posts: 613
Joined: Sun Jun 15, 2008 7:47 pm
Location: Sevilla
Contact:

TDbf PRO disponible...

Post by xmanuel »

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
xmanuel
Posts: 613
Joined: Sun Jun 15, 2008 7:47 pm
Location: Sevilla
Contact:

Re: TDbf PRO disponible...

Post by xmanuel »

Por cierto, ahora es el momento que pidais cosas!!!!
______________________________________________________________________________
Sevilla - Andalucía
User avatar
Carles
Posts: 937
Joined: Fri Feb 10, 2006 2:34 pm
Location: Barcelona
Contact:

Re: TDbf PRO disponible...

Post by Carles »

Gracias !!!

Puedes explicar q hace ? :D (controlar dbfs...)
Salutacions, saludos, regards

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

https://modharbour.app
https://modharbour.app/compass
https://forum.modharbour.app
xmanuel
Posts: 613
Joined: Sun Jun 15, 2008 7:47 pm
Location: Sevilla
Contact:

Re: TDbf PRO disponible...

Post by xmanuel »

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/ ... Dbf%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
User avatar
ruben Dario
Posts: 986
Joined: Thu Sep 27, 2007 3:47 pm
Location: Colombia

Re: TDbf PRO disponible...

Post by ruben Dario »

No hay nada, porque no lo colocas en este fórum
Ruben Dario Gonzalez
Cali-Colombia
rubendariogd@hotmail.com - rubendariogd@gmail.com
xmanuel
Posts: 613
Joined: Sun Jun 15, 2008 7:47 pm
Location: Sevilla
Contact:

Re: TDbf PRO disponible...

Post by xmanuel »

Te garantizo que sí hay!!!

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

Lo pondré aquí si Antonio lo permite ;-)
______________________________________________________________________________
Sevilla - Andalucía
User avatar
cuatecatl82
Posts: 614
Joined: Wed Mar 14, 2007 6:49 pm
Location: San Cristobal de las Casas, Chiapas México
Contact:

Re: TDbf PRO disponible...

Post by cuatecatl82 »

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
User avatar
ruben Dario
Posts: 986
Joined: Thu Sep 27, 2007 3:47 pm
Location: Colombia

Re: TDbf PRO disponible...

Post by ruben Dario »

Soy Usuario de Yahoo , pero no muestra anda
Ruben Dario Gonzalez
Cali-Colombia
rubendariogd@hotmail.com - rubendariogd@gmail.com
User avatar
acuellar
Posts: 1312
Joined: Tue Oct 28, 2008 6:26 pm
Location: Santa Cruz-Bolivia

Re: TDbf PRO disponible...

Post by acuellar »

Manuel

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

Saludos,

Adhemar
Saludos,

Adhemar C.
xmanuel
Posts: 613
Joined: Sun Jun 15, 2008 7:47 pm
Location: Sevilla
Contact:

Re: TDbf PRO disponible...

Post by xmanuel »

Haz una petición de entrada en mi grupo de TDbfPRO de Yahoo y te la apruebo...
______________________________________________________________________________
Sevilla - Andalucía
elvira
Posts: 462
Joined: Fri Jun 29, 2012 12:49 pm

Re: TDbf PRO disponible...

Post by elvira »

xManuel,

La clase es gratuita o es de paga?.

Yo ahora mismo preferentemente uso ADO y estamos dejando las dbfs.
User avatar
acuellar
Posts: 1312
Joined: Tue Oct 28, 2008 6:26 pm
Location: Santa Cruz-Bolivia

Re: TDbf PRO disponible...

Post by acuellar »

Perfecto

Ya la bajé.

Gracias.

Saludos,

Adhemar
Saludos,

Adhemar C.
User avatar
ruben Dario
Posts: 986
Joined: Thu Sep 27, 2007 3:47 pm
Location: Colombia

Re: TDbf PRO disponible...

Post by ruben Dario »

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
xmanuel
Posts: 613
Joined: Sun Jun 15, 2008 7:47 pm
Location: Sevilla
Contact:

Re: TDbf PRO disponible...

Post by xmanuel »

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 :D

Code: Select all

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: Select all

//------------------------------------------------------------------------------
// 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
xmanuel
Posts: 613
Joined: Sun Jun 15, 2008 7:47 pm
Location: Sevilla
Contact:

Re: TDbf PRO disponible...

Post by xmanuel »

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
Post Reply