Error an agregar registros en MySql

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

Error an agregar registros en MySql

Post by Mauricio »

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

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
Adolfo
Posts: 815
Joined: Tue Oct 11, 2005 11:57 am
Location: Chile
Contact:

Re: Error an agregar registros en MySql

Post by Adolfo »

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
----------
Lenovo Legion Y520, 16GB Ram, 1 TB NVME M.2, 1 TB SSD, GTX 1050
User avatar
Mauricio
Posts: 199
Joined: Thu Oct 06, 2005 9:07 pm
Location: San Diego, CA

Re: Error an agregar registros en MySql

Post by Mauricio »

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


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 _ 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('_ : ' + ltrim(str(nCargados)) + ' de ' + ltrim(str(nTotal)),'Informe de Carga')
    browse()
    oMovs:end()
    oMovs := NIL
return nil
 
User avatar
Lautaro
Posts: 322
Joined: Fri Oct 07, 2005 2:44 pm
Location: Osorno, Chile
Contact:

Re: Error an agregar registros en MySql

Post by Lautaro »

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

Re: Error an agregar registros en MySql

Post by Mauricio »

Lautaro,

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

Code: Select all

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 _ 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

   oMovs:Append()
   if oMovs:NetErr()
       ? "se genero un error"
   endif
 
saludos y gracias por su interes

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

Re: Error an agregar registros en MySql

Post by Lautaro »

Mauricio,

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

en tu codigo quedaria mas o menos asi :

Code: Select all

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

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

Re: Error an agregar registros en MySql

Post by Mauricio »

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

Post by Mauricio »

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

Re: Error an agregar registros en MySql

Post by Lautaro »

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

Re: Error an agregar registros en MySql

Post by Mauricio »

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