Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 04-11-2011
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 31
Lepe Va por buen camino
No me gusta para nada ese código, no hay control de errores de ningún tipo.

Fieldbyname podría petar si no encuentra el campo; el valor que llega puede no ser un entero o incluso un cero por no tener valor; el año no se sabe si está en 2 o 4 dígitos (encodedate acepta desde 1 a 9999, pero yo le daría el valor correcto). Cuidado con espacios en los varchar que pueden hacer fallar el StrToInt, usa un Trim para quitar dichos espacios antes de pasarlos al StrToInt.


Estoy seguro que has verificado los datos que le llegan, pero es que... la función encodedate está muy probada, es imposible que tenga un bug o fallo, por eso debe ser algo de tu aplicación Sí o Sí.

Lo de buscar el fallo por rtl70 creo es el último paso, primero me centraría en los fallos tontos que he comentado.
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #2  
Antiguo 04-11-2011
Avatar de Casimiro Noteví
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.682
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
¡¡¡Uuufff!!!, totalmente de acuerdo con Lepe, además veo otras cosas, por ejemplo el RecordCount, normalmente no te devuelve los registros de la tabla, salvo que hayas hecho antes un .Last. También deberías comprobar qué valores vienen en esos campos para asegurarte de que son correctos, lo mismo viene algún null. En fin, que no es la forma.
En fin, que tienes que comprobar muchas cosas, además de esas variables que no tenemos ni idea de qué son ni para qué sirven, también habría que preguntarse el motivo de guardar en varchar los años, meses y días, etc.
Responder Con Cita
  #3  
Antiguo 04-11-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.

Cien por ciento de acuerdo con ustedes sobre falta de controles de errores, pero no visualizaba un Access violation en ese código. Por las dudas probé EncodeDate con las conversiones mas variadas que me permitió el compilador como StrToInt(VarToStr(FieldByName('DD').Value)) por ejemplo. También puse campos a NULL, a '0' y '', pero lo único que logré fueron errores de conversión.

Coincido con Lepe que ese error se esta provocando en otra parte y no en EncodeDate. Los enlaces que puse refieren que el error se manifiesta en rtl70.bpl pero lo atribuyen a la inclusión de componentes no nativos. La verdad es que jamás se me presentó ese error ni había escuchado de él...

Un saludo.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #4  
Antiguo 04-11-2011
Avatar de richy08
richy08 richy08 is offline
Miembro
 
Registrado: may 2007
Ubicación: Bucerias, Nayarit Mexico
Posts: 529
Poder: 20
richy08 Va por buen camino
Cita:
Empezado por Casimiro Notevi Ver Mensaje
¡¡¡Uuufff!!!, totalmente de acuerdo con Lepe, además veo otras cosas, por ejemplo el RecordCount, normalmente no te devuelve los registros de la tabla, salvo que hayas hecho antes un .Last. También deberías comprobar qué valores vienen en esos campos para asegurarte de que son correctos, lo mismo viene algún null. En fin, que no es la forma.
En fin, que tienes que comprobar muchas cosas, además de esas variables que no tenemos ni idea de qué son ni para qué sirven, también habría que preguntarse el motivo de guardar en varchar los años, meses y días, etc.
valla habia usado el recordcount de esa manera y recorriendo los campos con un while y nunca me habia dado problemas, en el debuger he visto que los campos llegan correctamente en el formato que los espero, y lo mas extraño es que ya habia testeado sin ningun problema
Responder Con Cita
  #5  
Antiguo 04-11-2011
Avatar de richy08
richy08 richy08 is offline
Miembro
 
Registrado: may 2007
Ubicación: Bucerias, Nayarit Mexico
Posts: 529
Poder: 20
richy08 Va por buen camino
Cita:
Empezado por Lepe Ver Mensaje
No me gusta para nada ese código, no hay control de errores de ningún tipo.

Fieldbyname podría petar si no encuentra el campo; el valor que llega puede no ser un entero o incluso un cero por no tener valor; el año no se sabe si está en 2 o 4 dígitos (encodedate acepta desde 1 a 9999, pero yo le daría el valor correcto). Cuidado con espacios en los varchar que pueden hacer fallar el StrToInt, usa un Trim para quitar dichos espacios antes de pasarlos al StrToInt.


Estoy seguro que has verificado los datos que le llegan, pero es que... la función encodedate está muy probada, es imposible que tenga un bug o fallo, por eso debe ser algo de tu aplicación Sí o Sí.

Lo de buscar el fallo por rtl70 creo es el último paso, primero me centraría en los fallos tontos que he comentado.
hola lepe gracias por tus comentarios, efectivamente los campos que extrae el query son varchar y para los meses del 1..9 se les antepone un 0, y estos yo mismo los relleno asi(no creo que tengan espacios en blanco, per por si las dudas les pondre un trim), esos campos son varchar por que tambien son leidos por un procedimiento almacenado donde utilizo esta funcion Datediff(month,convert(char, @a+@mescppcompa+'01', 112), convert(char, @anocpp+convert(char(2), @mescpp)+'01', 112), y dicha funcion me pide los meses de esa manera, creo que acomode los datos para el procedimiento almacenado (mssql) y no me fije en los errores que podria causar en delphi, pero lo mas extraño de esto es que habia testeado la aplicacion y no me habia dado problemas hasta ayer.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
error en delphi.net kurono Varios 0 01-09-2008 23:49:08
Error raro al migrar de Delphi 5 a Delphi 7 bytecero Varios 3 07-06-2008 08:54:18
error de delphi 7 MARIA ROSA Conexión con bases de datos 3 27-04-2008 04:31:35
Convertir String en TDate. No me sirve EncodeDate VRO Varios 10 17-06-2005 10:18:11
Error en Delphi ovargas Varios 2 14-10-2003 17:09:14


La franja horaria es GMT +2. Ahora son las 10:39:54.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi