Ver Mensaje Individual
  #6  
Antiguo 04-11-2011
Avatar de richy08
richy08 richy08 is offline
Miembro
 
Registrado: may 2007
Ubicación: Bucerias, Nayarit Mexico
Posts: 529
Reputación: 17
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