Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   Seleccionar Cumpleañeros (https://www.clubdelphi.com/foros/showthread.php?t=53023)

Camilo 08-02-2008 00:56:47

Seleccionar Cumpleañeros
 
Hola amigos tengo la siguiente inquietud para ustedes:
En una tabla que llamremos "Tabla_Personas" tengo un campo que se llama "FechaNato" que corresponde a la fecha de nacimiento de las personas. Necesito filtrar a un quickrep las personas que cumplen años dentro del mes vigente; en este caso Febrero.

Trabajo D7 y Paradox.

Muchachos por su gentileza mil gracias

eduarcol 08-02-2008 01:07:00

Solo le debes pasar el párametro mes:

Código SQL [-]
select * from tabla_personas where Extract(Month from FechaNato) = :mes

Camilo 08-02-2008 01:12:34

Gracias Eduarcol por tu interes y ayuda.
Tengo dos problemas con eso. El primero que me gustaria que el mes fuera el actual, es decir 02 Febrero, 03 MArzo y que lo tomara (Seguramente como parametro) del sistema.
Y dos que commo estan las cosas me sale el mensage Type Mismatch.......

eduarcol 08-02-2008 01:24:52

si hablas de paradox seguro tienes un TQuery, partiendo de eso:

Código Delphi [-]
var
   nAyo, nMes, nDia: double;
begin
   DecodeDate(Date, nAyo, nMes, nDia);
   MiQuery.Active := False;
      MiQuery.sql.Text := 'select * from tabla_personas where Extract(Month from FechaNato) = :mes';
      MiQuery.ParambyName('Mes').AsFloat := nMes;
   MiQuery.Active := True;

end;

Camilo 08-02-2008 01:28:59

[Error] Unit1.pas(34): Types of actual and formal var parameters must be identical

Me sale ese mensage

eduarcol 08-02-2008 01:35:21

Segun me comentan puedes utilizar asInteger en lugar de asFloat, incluso Value, si nada de esto funciona nos vamos a los extremos

Código Delphi [-]
var
   nAyo, nMes, nDia: double;
begin
   DecodeDate(Date, nAyo, nMes, nDia);
   MiQuery.Active := False;
      MiQuery.sql.Text := 'select * from tabla_personas where Extract(Month from FechaNato) = ' + FloattoStr(nMes);
   MiQuery.Active := True;

end;

Camilo 08-02-2008 01:38:45

Eduarcol. creo que lo resolvi con una pequeña variacion:
Código Delphi [-]
var
Fecha:Tdate;
Ano, mes, dia: Word;
begin
Fecha:=Now;
DecodeDate(Fecha, ano, mes, dia);
Query1.Active := False;
Query1.sql.Text := 'select * From Tabla_personas where Extract(Month from FechaNato) = :mes';
Query1.ParambyName('Mes').AsFloat := Mes;
Query1.Active := True;

En todo caso muy amable sin tu ayuda.....Imposible para mi.

Gracias.

Corrijo lo de codigo SQL En que estaba pensando? Vi tu nuevo mensaje Eduarcol y aun mas agradecido quedo con tigo.

Abrazos.

eduarcol 08-02-2008 01:45:58

jajaja, ahora si me voy a dormir, el error estaba porq el decodedate espera un word no un double :D

Camilo 08-02-2008 01:48:18

Felices Sueños y de nuevo Gracias.


La franja horaria es GMT +2. Ahora son las 09:25:46.

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