Ver Mensaje Individual
  #4  
Antiguo 14-07-2015
Avatar de AgustinOrtu
[AgustinOrtu] AgustinOrtu is offline
Miembro Premium
NULL
 
Registrado: ago 2013
Ubicación: Argentina
Posts: 1.858
Reputación: 15
AgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en bruto
Ademas de lo que te dice Daniel, tampoco es necesario que interpretes la fecha de la manera que lo estas haciendo (copiando de a partes del string)
Una forma mucho mas elegante y efectiva de hacerlo:

Código Delphi [-]

uses
  DateUtils;

...
var
 AYear, AMonth, ADay: Word;
begin
  DecodeDate(FieldByName('Fec_Nacim').AsDate, AYear, AMonth, ADay)
end;

Aunque evidentemente esto solamente te funcionará si el campo en cuestion es de tipo fecha


Por otro lado

Código Delphi [-]
  FESMPMD1.Query3.ExecSQL;  
  FESMPMD1.Query3.Active;
  FESMPMD1.Query3.Open;
  FESMPMD1.Query3.First;

Dado que estas usando una sentencia de tipo SELECT no deberias estar usando ExecSQL, que se usa para ejecutar sentencias Insert, Update, Delete, etc

Para Select deberias usar open

Luego la linea

Código Delphi [-]
  FESMPMD1.Query3.Active;

No hace nada, es simplemente una variable booleana, si no le asignas True o False lo que estas haciendo es "consultar su valor" por nada. Si tiene sentido hacer esto:

Código Delphi [-]
  FESMPMD1.Query3.Active := True; // equivalente a FESMPMD1.Query3.Open;
  FESMPMD1.Query3.Active := False; // equivalente a FESMPMD1.Query3.Close;

  if FESMPMD1.Query3.Active then
   ShowMessage('Esta abierto')
  else
   ShowMessage('Esta cerrado');

Por ultimo si bien lo que te comenta Daniel sobre como armar la cadena SQL

Código Delphi [-]
  txt_Query := Format('UPDATE Secce0 SET Edad = %s WHERE Rfe_Lave = "%s"', [FecCap, txt_Rfe_Llave]);

Es perfectamente valido, pero aun se podria mejorar utilizando parametros; lo ideal es usar parametros siempre que se pueda, aunque es cierto que hay ocasiones en las que al ir construyendo el string de forma dinamica no es tan sencillo hacerlo. Pero en tu caso que es un sql estatico es mejor usar parametros, asi:

Código Delphi [-]
  ElQuery.Text := ' UPDATE Secce0 SET Edad = :Edad WHERE Rfe_Lave = :LaLlave ';
  ElQuery.ParamByName('Edad').Value := FecCap;
  ElQuery.ParamByName('LaLlave').Value := txt_Rfe_Llave;

Última edición por AgustinOrtu fecha: 14-07-2015 a las 08:35:25.
Responder Con Cita