FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Error an agregar registros en MySql
Posts: 199
Joined: Thu Oct 06, 2005 09:07 PM
Error an agregar registros en MySql
Posted: Thu Dec 03, 2009 05:40 PM
Hola :-)

despues de pelearme por dias con la perdida de registros al subir de DBF a MySql con TMySql,

ayer me puse a hacer un tracing de por donde se perdia el hilo y es al agregar mas de 20 registros.

// el ejemplo no es dbf, pero hace lo mismo, es solo para explicar como lo hago
Code (fw): Select all Collapse
nContador := 1
do while nContador < 50
    oRegistro:("campo", nContador++)
    oRegistro:Append()
    if oRegistro:netErr()
        msginfo(''ocurrio un error", nRegistro
    endif
enddo



por lo general siempre marca el error al llevar en 20 y 30 registros, buscando lei algo de LOCK TABLE, BEGIN TRANSACCION , ROLLBACK

alguien ya paso por este trauma que me pueda tirar un cable antes de empezar a buscar

saludos,
Mauricio :-)
Posts: 883
Joined: Tue Oct 11, 2005 11:57 AM
Re: Error an agregar registros en MySql
Posted: Thu Dec 03, 2009 07:02 PM

Maurico...

Yo utilizo una rutina que agrega mas de 500 registros de golpe y no pierdo ninguno.. podrias enunciar con que lo haces o un ej del codigo verdadero para hecharle un ojo...

Usas que tipo de recordset, cliente, server, tipo de bloqueo.. el server es en LAN o en internet...

Eso
Saludos
Adolfo

;-) Ji,ji,ji... buena la cosa... "all you need is code"

http://www.xdata.cl - Desarrollo Inteligente
----------
Asus TUF F15, 32GB Ram, 2 * 1 TB NVME M.2, GTX 1650
Posts: 199
Joined: Thu Oct 06, 2005 09:07 PM
Re: Error an agregar registros en MySql
Posted: Thu Dec 03, 2009 07:13 PM
Adolfo,

esta en internet, no e probado en local, porque el sistema esta corriendo en internet

es MySql, con TMySql, tipo de tabla InnoDB

tienes un trozo de codigo que pueda darme una luz

Code (fw): Select all Collapse
static function LeeData( dFecha)

   oMovs := oMysql:Query( "SELECT * FROM liquida LIMIT 0")
   
   use( cMovtos ) new alias 'movtos'
   nTotal := movtos->( RecCount())
   msginfo('Registros a cargar : ' + ltrim(str(nTotal)), cProgram)

    movtos->( dbgotop())
    DO WHILE !movtos->( eof())

        oMovs:fieldput('ruta'     , movtos->Ruta)
        oMovs:fieldput('cliente'  , movtos->Cliente)
        oMovs:fieldput('fecha'    , dFecha )
        oMovs:fieldput('cantidad' , movtos->Cantidad)
        oMovs:fieldput('precio'   , movtos->precio)
        oMovs:fieldput('importe'  , movtos->Importe)
        oMovs:fieldput('registro' , ++nCargados)


        // msgwait('Procesando informacion ..............' , 'Espere unos minutos .....', .25)

        if !oMovs:Append()
            msgStop('SE GENERO UN ERROR EN LA CONEXION, EL PROCESO SE CANCELARA' + CRLF +;
                'RE-INTENTELO DE NUEVO POR FAVOR, NO SE DUPLICARA LA INFORMACION' + CRLF +;
                'LOS REGISTROS CARGADOS YA FUERON ELIMINADOS, SE CARGARON' + CRLF +;
                ' : '  + ltrim( str(  nCargados ))  + ' del total : ' + ltrim(str(nTotal)), cProgram)
            exit
        endif
        SysRefresh()
        nCargados++
        //movtos->( dbdelete())
        movtos->( dbskip())
    ENDDO
    msginfo('Registros cargados : ' + ltrim(str(nCargados)) + ' de ' + ltrim(str(nTotal)),'Informe de Carga')
    browse()
    oMovs:end()
    oMovs := NIL
return nil
Posts: 337
Joined: Fri Oct 07, 2005 02:44 PM
Re: Error an agregar registros en MySql
Posted: Thu Dec 03, 2009 07:35 PM

Mauricio,

¿ Que error te reporta ?, ¿ es de Mysql ?, si es del motor o del cliente te va a dar un codigo de error que hay que buscar en la documentacion de mysql.

Atte.,

Lautaro

Hola,

Soy un Contador que por necesidad aprendio a programar y se quedo programando.
Posts: 199
Joined: Thu Oct 06, 2005 09:07 PM
Re: Error an agregar registros en MySql
Posted: Thu Dec 03, 2009 07:57 PM
Lautaro,

solo me retorna error al agregar, no sabria si es el motor de datos o como lo identifico?

Code (fw): Select all Collapse
if !oMovs:Append()
            msgStop('SE GENERO UN ERROR EN LA CONEXION, EL PROCESO SE CANCELARA' + CRLF +;
                'RE-INTENTELO DE NUEVO POR FAVOR, NO SE DUPLICARA LA INFORMACION' + CRLF +;
                'LOS REGISTROS CARGADOS YA FUERON ELIMINADOS, SE CARGARON' + CRLF +;
                ' : '  + ltrim( str(  nCargados ))  + ' del total : ' + ltrim(str(nTotal)), cProgram)
            exit
        endif



que seria lo mismo que hacer esto

Code (fw): Select all Collapse
   oMovs:Append()
   if oMovs:NetErr()
       ? "se genero un error"
   endif


saludos y gracias por su interes

Mauricio
Posts: 337
Joined: Fri Oct 07, 2005 02:44 PM
Re: Error an agregar registros en MySql
Posted: Thu Dec 03, 2009 08:30 PM
Mauricio,

Puedes usar el metodo :error() de la clase TMysqlQuery o TmysqlTable

en tu codigo quedaria mas o menos asi :

Code (fw): Select all Collapse
  oMovs:Append()
   if oMovs:NetErr()
       ? "se genero un error"
       ? oMovs:Error()
   endif


Saludos,

Lautaro Moreira
Hola,

Soy un Contador que por necesidad aprendio a programar y se quedo programando.
Posts: 199
Joined: Thu Oct 06, 2005 09:07 PM
Re: Error an agregar registros en MySql
Posted: Thu Dec 03, 2009 08:31 PM

probando

gracias,
Mauricio :mrgreen:

:)

Posts: 199
Joined: Thu Oct 06, 2005 09:07 PM
Re: Error an agregar registros en MySql
Posted: Thu Dec 03, 2009 08:45 PM
:-) :-) :-) :-) :-) :-) :-)

Lautaro,

yo te mando hacer una estatua hermano y al buen Adolfo una altar con flores

como dicen por aca... "the one that does not know, he is like that does not watch"


me habeis salvado el dia sres, con ese codigo del numero de error, me dice que tenia una llave duplicada, le quite el primary Key and ready.

subio todos los registros.

cosa de novatos para ustedes, pero son mis pinimos con Sql,

gracias de nuevo a los 2

Mauricio :-)
Posts: 337
Joined: Fri Oct 07, 2005 02:44 PM
Re: Error an agregar registros en MySql
Posted: Thu Dec 03, 2009 10:03 PM

Mauricio,

No tienes nada que agradecer, y es un placer que mis conocimientos sirvan para algo.

Sobre tu problema, creo que deberias ver el diseño de la tabla, ya que por lo menos en teoria no deberian haber primary keys repetidas, a menos que algo ( no se me ocurre que ) lo justifique.

Saludos.

Lautaro Moreira

Hola,

Soy un Contador que por necesidad aprendio a programar y se quedo programando.
Posts: 199
Joined: Thu Oct 06, 2005 09:07 PM
Re: Error an agregar registros en MySql
Posted: Thu Dec 03, 2009 10:58 PM

Si, fue pensar aun como DBF, podia tener el mismo codigo N veces en el detalle de movientos de una factura, le hacia un indice y podian repetirse sin problemas, cuando consultara ese codigo le hacia un seek y listo

pero aqui no me deja duplicarlo, ese campo no debe ser primery Key en la tabla, error de novato.

saludos,
Mauricio

:D

Continue the discussion