Page 1 of 1

Otro ejemplo de E1RDD para MySQL

Posted: Fri Apr 30, 2010 4:40 pm
by xmanuel
En este ejemplo ilustar como se pueden mezclar la RDD para MySQL y las tradicionales.
Este ejemplo pasa Test.dbf del samples de (x)Harbour a MySQL. Donde se ejecute tiene que estar dicha DBF

Este es el link de descarga: http://www.zshare.net/download/7555559407d411ea/

Code: Select all

//----------------------------------------------------------------------------//
// Para no cargar el ejecutable con las RDD

ANNOUNCE E1RDD

//----------------------------------------------------------------------------//
// Procedimiento principal de arranque

procedure main()

    local cHost := space( 20 )
    local cUser := space( 20 )
    local cPwd := space( 20 )
    local cDb := space( 20 )
    local cTable := space( 20 )
    local oCon
    local GetList := {}
    local nWA1, nWA2, i, nLen, aStruct, nDb, aDb

    SET DATE FORMAT TO "DD/MM/YYYY"

    cls

    @ 10, 10 SAY "Host..........:" GET cHost
    @ 11, 10 SAY "User..........:" GET cUser
    @ 12, 10 SAY "Password......:" GET cPwd
    READ

    cls

    cHost := AllTrim( cHost )
    cUser := AllTrim( cUser )
    cPwd := AllTrim( cPwd )
    cDb := AllTrim( cDb )

//----------------------------------------------------------------------------//

    oCon := TMSConnect():New()

    oCon:SetAutoError( .f. )

    // Intentamos la conexion
    if oCon:Connect( cHost, cUser, cPwd )

        aDb := oCon:ListDataBases()

        @ 2, 9 SAY "Elige una Bases de Datos"
        DispBox( 3, 9, 21, 40 )

        nDb := AChoice( 4, 10, 20, 39, aDb )

        cDb := aDb[ nDb ]

        oCon:SelectDataBase( cDb )

        Alert( "TEST.DBF va a ser importada en la base de datos: " + cDb )

        // Se inicia el sistema E1RDD
        InitE1RDD( oCon )

//----------------------------------------------------------------------------//
// A partir de aqui estamos con RDDs
//----------------------------------------------------------------------------//

        // Abrimos y ponemos en uso test.dbf
        USE test ALIAS test NEW

        // Hallamos el area de trabajo
        nWA1 := Select( "test" )

        // Obtenemos la estructura de la DBF
        aStruct := ( nWA1 )->( DbStruct() )

//----------------------------------------------------------------------------//

        // Creamos una tabla con la misma estructura de la DBF
        // en la conexion oCom
        DbCreate( "e1test", aStruct, "E1RDD" )

        // Abrimos y ponemos en uso la tabla
        USE e1test ALIAS e1test VIA "E1RDD" NEW

        // Hallamos el area de trabajo
        nWA2 := Select( "e1test" )

//----------------------------------------------------------------------------//

        cls
        @ 10, 10 SAY "Procesando el registro "

        // Hacemos la exportacion desde la DBF a la tabla MySQL
        nLen :=  ( nWA1 )->( FCount() )

        while !( nWA1 )->( Eof() )

            ( nWA2 )->( DbAppend() )

            for i := 1 to nLen
                ( nWA2 )->( FieldPut( i, ( nWA1 )->( FieldGet( i ) ) ) )
            next

            ( nWA2 )->( DbCommit() )

            @ 10, 35 SAY Str( ( nWA1 )->( RecNo() ) )

            ( nWA1 )->( DbSkip( 1 ) )
        end

//----------------------------------------------------------------------------//

        // Mostramos la DBF
        Alert( "Browse de: " + Alias( nWA1 ) )
        ( nWA1 )->( Browse() )

        // Mostramos la tabla MySQL
        Alert( "Browse de: " + Alias( nWA2 ) )
        ( nWA2 )->( Browse() )

        // Cerramos todo
        CLOSE test
        CLOSE e1test

//----------------------------------------------------------------------------//

    endif

    oCon:Free()

return

//----------------------------------------------------------------------------//
 

Re: Otro ejemplo de E1RDD para MySQL

Posted: Fri Apr 30, 2010 5:06 pm
by xmanuel
Por cierto, me gustaría que comentarais que os parece... :D

Re: Otro ejemplo de E1RDD para MySQL

Posted: Sat May 01, 2010 12:39 pm
by Ariel
xmanuel,

creo que no es el foro apropiado.

Salu2, Ariel.

Re: Otro ejemplo de E1RDD para MySQL

Posted: Sat May 01, 2010 3:02 pm
by Frafive
Muy bueno Manu, lo ideal seria poder disponer de una demo para realizar pruebas.

un saludo y

Re: Otro ejemplo de E1RDD para MySQL

Posted: Sat May 01, 2010 9:06 pm
by FiveWiDi
xmanuel wrote:Por cierto, me gustaría que comentarais que os parece... :D
Teniendo en cuenta que no he programado nunca para usar SQL, a mi me parece genial.

Uso tu maravillosa clase TDBF (con la versión actual de FWH y su Hasrbour), entiendo que con lo que estas desarrollando, llegará el momento en que se disponga de algo parecido para atacar tablas en SQL, con lo cual ya estoy impaciente a ver que nos depara el futuro.

Don de puedo ver información sobre Eagle1? Y asi es sin estar registrado mejor que mejor; soy 'antiregistros'.

Sobre si este en el foro adecuado; que quereis que os diga no me molesta en absoluto y además creo que es muy positivo que alrededor de Fiwewin/Harbour se creen librerías/utilidades de terceros que lo potencien (sean de pago [Eagle1] o no [TDBF]).

Saludos
Carlos G.

Re: Otro ejemplo de E1RDD para MySQL

Posted: Sun May 02, 2010 10:42 am
by mgsoft
Muy bueno el ejemplo.

¿Tienes un mantenimiento completo con Browse?.


Y creo que es el foro adecuado, puesto que se trata de un muy buen producto complementario para FWH, y aún´más, imprescindible. :D


Extraordinario trabajo Manuel!!!

Re: Otro ejemplo de E1RDD para MySQL

Posted: Mon May 03, 2010 5:42 pm
by Frafive
Hola Manu

En que estado esta el rdd ? tienes pensado publicar una demo para ir haciendo pruebas ?

un saludo