Error an agregar registros en MySql

Error an agregar registros en MySql

Postby Mauricio » Thu Dec 03, 2009 5:40 pm

Hola :D

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

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 :mrgreen:
User avatar
Mauricio
 
Posts: 199
Joined: Thu Oct 06, 2005 9:07 pm
Location: San Diego, CA

Re: Error an agregar registros en MySql

Postby Adolfo » Thu Dec 03, 2009 7: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, 1 TB NVME M.2, 1 TB SSD, GTX 1650
User avatar
Adolfo
 
Posts: 846
Joined: Tue Oct 11, 2005 11:57 am
Location: Chile

Re: Error an agregar registros en MySql

Postby Mauricio » Thu Dec 03, 2009 7: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: Select all  Expand view


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
 
User avatar
Mauricio
 
Posts: 199
Joined: Thu Oct 06, 2005 9:07 pm
Location: San Diego, CA

Re: Error an agregar registros en MySql

Postby Lautaro » Thu Dec 03, 2009 7: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
User avatar
Lautaro
 
Posts: 322
Joined: Fri Oct 07, 2005 2:44 pm
Location: Osorno, Chile

Re: Error an agregar registros en MySql

Postby Mauricio » Thu Dec 03, 2009 7:57 pm

Lautaro,

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

Code: Select all  Expand view

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

   oMovs:Append()
   if oMovs:NetErr()
       ? "se genero un error"
   endif
 


saludos y gracias por su interes

Mauricio
User avatar
Mauricio
 
Posts: 199
Joined: Thu Oct 06, 2005 9:07 pm
Location: San Diego, CA

Re: Error an agregar registros en MySql

Postby Lautaro » Thu Dec 03, 2009 8:30 pm

Mauricio,

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

en tu codigo quedaria mas o menos asi :

Code: Select all  Expand view

  oMovs:Append()
   if oMovs:NetErr()
       ? "se genero un error"
       ? oMovs:Error()
   endif
 
 


Saludos,

Lautaro Moreira
User avatar
Lautaro
 
Posts: 322
Joined: Fri Oct 07, 2005 2:44 pm
Location: Osorno, Chile

Re: Error an agregar registros en MySql

Postby Mauricio » Thu Dec 03, 2009 8:31 pm

:) probando


gracias,
Mauricio :mrgreen:
User avatar
Mauricio
 
Posts: 199
Joined: Thu Oct 06, 2005 9:07 pm
Location: San Diego, CA

Re: Error an agregar registros en MySql

Postby Mauricio » Thu Dec 03, 2009 8:45 pm

:lol: :lol: :lol: :lol: :lol: :lol: :lol:

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 :mrgreen:
User avatar
Mauricio
 
Posts: 199
Joined: Thu Oct 06, 2005 9:07 pm
Location: San Diego, CA

Re: Error an agregar registros en MySql

Postby Lautaro » 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
User avatar
Lautaro
 
Posts: 322
Joined: Fri Oct 07, 2005 2:44 pm
Location: Osorno, Chile

Re: Error an agregar registros en MySql

Postby Mauricio » Thu Dec 03, 2009 10:58 pm

:D

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
User avatar
Mauricio
 
Posts: 199
Joined: Thu Oct 06, 2005 9:07 pm
Location: San Diego, CA


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot] and 47 guests