Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   validar una fecha en un ciclo repetitivo.... (https://www.clubdelphi.com/foros/showthread.php?t=21672)

uper 24-05-2005 19:57:50

validar una fecha en un ciclo repetitivo....
 
Discupen tengo un problemita al pasar de una tabla informacion fechas, de echo son varios campos pero solo dos de ellos le agrege una condicion para que verificara que si no esta vacio le pase el valor; en caso contario lo deje en blanco hice un bucle por ser varios registros.

este es el codigo
Código Delphi [-]
While not tbClienteOrigen.Eof do
 begin
tbClienteDetID.value:=tbClienteOrigenID.value;
tbClienteDetAnotacion.value.=tbClienteOrigenAnotacion.value;
 if not tbClienteOrigenFechaInicio.isnull then
  tbClienteDetfechaInicio.value:= tbClienteOrigenFechaInicio.value
 else 
    tbClienteDetfechaInicio.value:='';  //----->error incompatible types Tdatetime and string
 if not tbClienteOrigenFechaFinal.Isnull then
  tbClienteDetfechaFinal.value:= tbClienteOrigenFechaFinal.value;
else
 tbClienteDetfechaFinal.value:='';  //----> error incompatible types tdatetime and string
tbClienteDetActivo.value:='A';
tbClienteOrigen.next;
 
end
Aun si yo cambiara value por tbClienteDetfechaFinal.AsDateTime :='';
me sige el error.
Cual seria la manera para que quedara vacio el campo si es que es null vacio.
me falta algun parametro.

les agradesco

roman 24-05-2005 20:37:45

¿No sirve poner?

Código Delphi [-]
tbClienteDetfechaInicio.value:= NULL;

// Saludos

uper 24-05-2005 21:24:58

ya lo comprobe y no funciona poner un null, compile el programa y no me da error alguno pero al ejecutarse ese procedimiento me dice:
'Invalid varian type conversion'

Tambien comprobe haciendo un cambio de value por AsDateTime y aun da ese error invalid varian...
Código Delphi [-]
 While not tbClienteOrigen.Eof do
  begin
 tbClienteDetID.value:=tbClienteOrigenID.value;
 tbClienteDetAnotacion.value.=tbClienteOrigenAnotacion.value;
  if not tbClienteOrigenFechaInicio.isnull then
   tbClienteDetfechaInicio.value:= tbClienteOrigenFechaInicio.value
  else 
     tbClienteDetfechaInicio.AsDateTime:=null;
  if not tbClienteOrigenFechaFinal.Isnullthen
   tbClienteDetfechaFinal.value:= tbClienteOrigenFechaFinal.value;
 else
  tbClienteDetfechaFinal.AsDateTime:=null; 
 and string
 tbClienteDetActivo.value:='A';
 tbClienteOrigen.next;
  
 end
por que hace esto ?

roman 24-05-2005 21:33:36

Cita:

Empezado por uper
al ejecutarse ese procedimiento me dice:
'Invalid varian type conversion'

¿En qué línea te marca ese error? ¿Tienes algún DBGrid u otro control de datos conectado a tbClienteOrigen?

Intenta poner NullStrictConvert := false

al principio del procedimiento.

// Saludos

marcoszorrilla 24-05-2005 21:42:41

Prueba esto otro:
Código Delphi [-]
tbClienteDetfechaInicio.Clear

Un Saludo.

uper 25-05-2005 00:52:02

Saludos ya quedo con el metodo Clear agregandole para pasar fechas nulas,
y por que con este bucle me pasa los datos pero le falta el ultimo registro de donde se toman los datos de origen.

tengo mi tabla con 1517 registros y me copio 1516 en la tabla de destino.
este el codigo completo:
try
tbClienteOrigen.open;
tbClienteOrigen.first;
tbClienteDet.open;
While not tbClienteOrigen.Eof do
begin
tbClienteDet.append;
tbClienteDetID.value:=tbClienteOrigenID.value;
tbClienteDetAnotacion.value.=tbClienteOrigenAnotacion.value;
if not tbClienteOrigenFechaInicio.isnull then
tbClienteDetfechaInicio.value:= tbClienteOrigenFechaInicio.value
else
tbClienteDetfechaInicio.Clear;
if not tbClienteOrigenFechaFinal.Isnull then
tbClienteDetfechaFinal.value:= tbClienteOrigenFechaFinal.value;
else
tbClienteDetfechaFinal.clear;
tbClienteDetActivo.value:='A';
tbClienteDet.post;
tbClienteOrigen.next;
end
finally
tbClienteDet.close;
tbClienteOrigen.close;
end;

roman 25-05-2005 02:21:10

No alcanzo a ver el error :(

Pero haciendo un pequeño paréntesis te comento que ni Marco ni yo entramos a editar tu mensaje para colorear cada palabra reservada. Cuando publiques código delphi basta que lo encierres entre etiquetas [ delphi ] y [ /delphi ] (sin los espacios al lado de los corchetes) para que se coloree automágicamente además de que así se preservan las indentaciones. ;)

// Saludos


La franja horaria es GMT +2. Ahora son las 10:37:43.

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