Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 07-09-2011
marilinspi marilinspi is offline
Miembro
 
Registrado: ene 2007
Posts: 147
Poder: 20
marilinspi Va por buen camino
Restar fechas pasando parametro

hola a todos trabajo en delphi 7 y base de datos FireBird, y necesito en una consulta sql dentro de un SQLDataSet restar dos fechas pero una la tengo que pasar mediante un parametro, seria algo asi

Código:
Select (:Fecharesumen -Fecha_ASG) as DIF
From Aportes
ya he probado eso
Código:
Select CAST(((:Fecharesumen) - Fecha_ASG) AS INTEGER) AS DIF
From Aportes_Generales
pero no me funciono, agradeceria si alguien tiene una idea de como se hace.
bueno desde ya muchas gracias.
Responder Con Cita
  #2  
Antiguo 07-09-2011
Avatar de Casimiro Noteví
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.671
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
Justo abajo, al final de esta página, tienes varios enlaces sobre "restar fechas", es un tema que se ha tratado muchas veces, si haces una búsqueda por clubdelphi encontrarás más enlaces.
Responder Con Cita
  #3  
Antiguo 07-09-2011
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.015
Poder: 22
oscarac Va por buen camino
pasa como parametro la fecha... algo asi

Código Delphi [-]
 
Query1.Clear
query1.Sql.Add ('Select (:Fecharesumen -Fecha_ASG) as DIF From Aportes')
query1.parameters[0].asdate := now;
query1.open // execsql

now toma la fecha actual
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #4  
Antiguo 07-09-2011
marilinspi marilinspi is offline
Miembro
 
Registrado: ene 2007
Posts: 147
Poder: 20
marilinspi Va por buen camino
Gracias por sus respuestas pero...
Casimiro Notevi si hay muchos hilos sobre restar fechas, pero no vi ninguno pasando parametro a un SqlDataSet
Oscarac si en un qry funciona pero lo mismo lo pongo en un SqlDataSet y no anda...
Responder Con Cita
  #5  
Antiguo 07-09-2011
Avatar de Casimiro Noteví
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.671
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
¿Y qué es un sqldataset?
¿Y por qué no te funciona?
¿Y qué error te sale?
¿Y qué base de datos estás usando?
¿Y qué componentes estás usando?
¿Y dónde está tu código fuente?

Recuerda nuestras normas
Responder Con Cita
  #6  
Antiguo 07-09-2011
marilinspi marilinspi is offline
Miembro
 
Registrado: ene 2007
Posts: 147
Poder: 20
marilinspi Va por buen camino
¿Y qué es un sqldataset? componente que se utiliza para realizar una consulta firebird
¿Y por qué no te funciona? si sabria no estaria preguntando
¿Y qué error te sale? 'An error was found in the application program input parameters for the SQL statement'
¿Y qué base de datos estás usando? lo dije al hacer la pregunta
¿Y qué componentes estás usando? ya lo dije un SqlDataSet
¿Y dónde está tu código fuente? lo puse al hacer la pregunta
Responder Con Cita
  #7  
Antiguo 07-09-2011
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.015
Poder: 22
oscarac Va por buen camino
jajajajaja chica de armas tomar....

me atrevo a preguntarte cual es la diferencia o beneficio de utilizar un SqlDataSet Vs un Adoquery

es que sl SqlDataset solo es para bases de datos Firebird? (no lo creo)
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #8  
Antiguo 07-09-2011
marilinspi marilinspi is offline
Miembro
 
Registrado: ene 2007
Posts: 147
Poder: 20
marilinspi Va por buen camino
Uso SqlDataSet porque todo mi proyecto lo tengo hecho con este componente y no me ha dado malos resultados, solo que ahora me surgió este inconveniente.
Y la verdad que no se si SqlDataset solo es para bases de datos Firebird...
Responder Con Cita
  #9  
Antiguo 07-09-2011
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.015
Poder: 22
oscarac Va por buen camino
en que propiedad del SqlDataSet colocas la cadena? (osea el Select.... from... where)...
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #10  
Antiguo 07-09-2011
marilinspi marilinspi is offline
Miembro
 
Registrado: ene 2007
Posts: 147
Poder: 20
marilinspi Va por buen camino
en la propiedad CommandText...
Responder Con Cita
  #11  
Antiguo 07-09-2011
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.015
Poder: 22
oscarac Va por buen camino
y en SqlConnection que colocas?
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #12  
Antiguo 07-09-2011
marilinspi marilinspi is offline
Miembro
 
Registrado: ene 2007
Posts: 147
Poder: 20
marilinspi Va por buen camino
el nombre del Componenete SqlConnection que tenes que haber creado prebiamente con la conexion a la base de datos... pero para mas sencillo podes probar en el gestor de bases de datos
Responder Con Cita
  #13  
Antiguo 07-09-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 marilinspi.

Creo que tendrías que indicarle de que tipo es el parámetro que estas pasando, probá de este modo:
Código SQL [-]
SELECT CAST(CAST(:PARAM_FECHA AS DATE)- T1.FECHA AS INTEGER) AS DIFERENCIA FROM TABLA T1

Un saludo.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #14  
Antiguo 07-09-2011
marilinspi marilinspi is offline
Miembro
 
Registrado: ene 2007
Posts: 147
Poder: 20
marilinspi Va por buen camino
gracias ecfisa, pero me dio este error 'DATE data type is now called TIMESTAMP.'
si se te ocurre alguna otra cosa, estare muy agradecida.
Responder Con Cita
  #15  
Antiguo 07-09-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.

A ver, probá así:
Código SQL [-]
SELECT CAST(CAST(:PARAM_FECHA AS TIMESTAMP)- T1.FECHA AS INTEGER) AS DIFERENCIA FROM TABLA T1


Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #16  
Antiguo 07-09-2011
marilinspi marilinspi is offline
Miembro
 
Registrado: ene 2007
Posts: 147
Poder: 20
marilinspi Va por buen camino
muchas gracias, ya habia probado esa opcion y me da el error Data type unknown.
Responder Con Cita
  #17  
Antiguo 07-09-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.

Entonces lo siento, debe ser alguna característica del componente SqlDataSet (con el que no he trabajado), ya que con el IBExpert me funciona de ambos modos.
Voy a ver si encuentro algo al respecto.

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #18  
Antiguo 08-09-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.

Mirá, probé por primera vez con el componente, copié y pegué la cadena que antes te puse
Código SQL [-]
SELECT CAST(CAST(:PARAM_FECHA AS DATE)- T1.FECHA AS INTEGER) AS DIFERENCIA FROM TABLA T1
en la propiedad CommandText, lo activé. Después de avisarme: 'Client SQL Dialect 1 does support reference to datetype', puse a false el SQLConnection, hice doble click sobre él, cambié el SQLDialect a 3 y pareciera funcionar bién.

Espero disculpes alguna torpeza pero es la primera ves que uso este componente:
Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
begin
  SQLDataSet1.ParamByName('PARAM_FECHA').AsDate:= Now;
  SQLDataSet1.Open;
  ShowMessage(SQLDataSet1.FieldByName('DIFERENCIA').AsString);
end;
La fecha de la tabla es 01.09.2011 y el resultado que me arroja es 6, lo cuál es correcto.

Si gustas te adjunto la prueba.


Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #19  
Antiguo 08-09-2011
marilinspi marilinspi is offline
Miembro
 
Registrado: ene 2007
Posts: 147
Poder: 20
marilinspi Va por buen camino
bueno dale adjuntamelo si no es molestia... y gracias por todo.
Responder Con Cita
  #20  
Antiguo 08-09-2011
Avatar de Casimiro Noteví
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.671
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
Si has leído nuestra guía de estilo verás que enumera una serie de consejos para conseguir una mejor y más rápida ayuda. Si no se siguen esas normas es posible que cueste más trabajo el ayudar a la persona que solicita ayuda.
El hacerte esas preguntas es porque no está claro el contexto de tu problema, porque no lo has explicado, si además contestas como lo has hecho, entonces... simplemente, es peor para tí.


Cita:
Empezado por marilinspi Ver Mensaje
¿Y qué es un sqldataset? componente que se utiliza para realizar una consulta firebird.
Es un componente que pertenece a la paleta dbxExpress

¿Y por qué no te funciona? si sabria no estaria preguntando
No me funciona porque me sale error xxxxx cuando hago esto y sin embargo me sale error yyyyy cuando hago esto otro.

¿Y qué error te sale? 'An error was found in the application program input parameters for the SQL statement'
Gracias

¿Y qué base de datos estás usando? lo dije al hacer la pregunta
Firebird, tal y como comentaste al principio, cierto.

¿Y qué componentes estás usando? ya lo dije un SqlDataSet
Es el dataset de los dbxExpress

¿Y dónde está tu código fuente? lo puse al hacer la pregunta
Bueno, eso no es "sólo" el código fuente, nos facilitaría muchísimo el que pusieras TODO el código anterior a ese, variables, campos, tipos, asignaciones, etc.
Recuerda que no somos adivinos, no tenemos bola de cristal, nadie nos paga por ayudar, que lo hacemos porque queremos colaborar altruistamente con la gente que tiene problemas y necesita resolver algún problema y quiera avanzar, etc.

Ya ves, con tus respuestas tan escuetas y explicaciones tan avaras... nadie ha podido ayudarte de momento, ahí tienes a ecfisa ocupando su tiempo en crear código con esos componentes, haciendo programitas de pruebas y comprobando que, evidentemente, el código que te aconsejó funciona perfectamente, así que el problema es claramente de algo que no nos ha dicho.
Saludos y que tengas suerte en la vida.
Responder Con Cita
Respuesta



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
restar dos fechas luxus OOP 2 06-08-2008 22:07:34
Crear Formulario pasando como parametro un string Efren2006 OOP 2 15-05-2008 18:08:48
Restar fechas Acker Varios 4 07-11-2005 14:11:51
Crear Formulario pasando como parametro un string morfeo21 Varios 1 18-08-2004 02:39:58
restar dos fechas seken Varios 4 15-08-2003 23:34:56


La franja horaria es GMT +2. Ahora son las 19:46:44.


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