Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 02-05-2017
Avatar de mRoman
mRoman mRoman is offline
Miembro
 
Registrado: nov 2003
Posts: 646
Poder: 23
mRoman Va por buen camino
Creo q tienes algunos errores....
Código Delphi [-]
With Datamodule1.ADOQuery_consultasFlujo Do
            Begin
              Close;
              SQL.Clear;
              SQL.Add('SELECT * FROM Entradas_Salidas_ECS WHERE tipo_de_entrada =:condicion1 and tipo_de_salida =:condicion2 and nombre =:condicion3 ');
              SQL.Add('and Fecha_salida BETWEEN :condicion4 and :condicion5 ');
              SQL.Add('and Fecha_de_entrada BETWEEN :condicion6 and :condicion7');
              Parameters.Refresh;
              Parameters.ParamByName('condicion1').Value:=RG_Entradas.Items.strings[RG_Entradas.ItemIndex];
              Parameters.ParamByName('condicion2').Value:=RG_Salidas.Items.strings[RG_Entradas.ItemIndex]; //AQUI HACE REFERENCIA RG_ENTRADAS... no debería ser a RG_Salidas.ItemIndex???
              Parameters.ParamByName('condicion3').Value:='Cliente';
              Parameters.ParamByName('condicion4').Value:=StrToDatetime(E_Entrada_Inicio.Text);
              Parameters.ParamByName('condicion5').Value:=StrToDate(E_Entrada_Fin.Text);
              Parameters.ParamByName('condicion6').Value:=StrToDate(E_Salida_Inicio.Text);
              Parameters.ParamByName('condicion7').Value:=StrToDate(E_Salida_Fin.Text);
              Open;
            End;

Y mas arriba te hacian un comentario de registrar el tipo de dato que debe aceptar, es decir cambiar VALUE por el tipo de dato que deberá aceptar como parametro:

Código Delphi [-]
Parameters.ParamByName('condicion5').Value:=StrToDate(E_Entrada_Fin.Text);
              Parameters.ParamByName('condicion6').AsDate:=StrToDate(E_Salida_Inicio.Text);//AsDate o AsDateTime, segun...si el campo TimeStamp
              Parameters.ParamByName('condicion7').AsDate:=StrToDate(E_Salida_Fin.Text);

Saludos.
__________________
Miguel Román

Afectuoso saludo desde tierras mexicanas....un aguachile?, con unas "cetaseas" bien "muertas"?, VENTE PUES !!
Responder Con Cita
  #2  
Antiguo 02-05-2017
netcom netcom is offline
Miembro
NULL
 
Registrado: nov 2014
Posts: 11
Poder: 0
netcom Va por buen camino
Gracias por la sugerencia Manel.
Roman, bien visto el error de entrada/salida, aunque no afecta en nada al problema que tengo.

Intento cambiar "value" por el tipo concreto de cada parámetro como me sugerís, pero el delhpi da error de sentencia. ParamByName no acepta otra cosa queno sea Value, ni AsString, ni Asdate... quizá tengo una versión algo obsoleta? trabajo con XE2:

Código Delphi [-]
With Datamodule1.ADOQuery_consultasFlujo Do
            Begin
              Close;
              SQL.Clear;
              SQL.Add('SELECT * FROM Entradas_Salidas_ECS WHERE tipo_de_entrada =condicion1 and tipo_de_salida =condicion2 and nombre =condicion3 ');
              SQL.Add('and Fecha_salida BETWEEN :condicion4 and :condicion5 ');
              SQL.Add('and Fecha_de_entrada BETWEEN :condicion6 and :condicion7');
              Parameters.Refresh;
              Parameters.ParamByName('condicion1').AsString:=RG_Entradas.Items.strings[RG_Entradas.ItemIndex];
              Parameters.ParamByName('condicion2').AsString:=RG_Salidas.Items.strings[RG_Salidas.ItemIndex];
              Parameters.ParamByName('condicion3').AsString:='Cliente';
              Parameters.ParamByName('condicion4').AsString:=E_Entrada_Inicio.Text;
              Parameters.ParamByName('condicion5').AsString:=E_Entrada_Fin.Text;
              Parameters.ParamByName('condicion6').AsString:=E_Salida_Inicio.Text;
              Parameters.ParamByName('condicion7').AsString:=E_Salida_Fin.Text;
              Open;
            End;

Alguna otra idea?

Gracias de nuevo.
Responder Con Cita
  #3  
Antiguo 02-05-2017
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
Cita:
Empezado por netcom Ver Mensaje
Intento cambiar "value" por el tipo concreto de cada parámetro como me sugerís, pero el delhpi da error de sentencia. ParamByName no acepta otra cosa queno sea Value, ni AsString, ni Asdate... quizá tengo una versión algo obsoleta? trabajo con XE2:
Copia aquí tu código que lo veamos, y copia y pega también el error exactamente que sale y dónde.
Responder Con Cita
  #4  
Antiguo 02-05-2017
netcom netcom is offline
Miembro
NULL
 
Registrado: nov 2014
Posts: 11
Poder: 0
netcom Va por buen camino
Primero, perdón... estaba obcecado con el problema y no veía más allá de mi nariz...
Ya lo he resuelto, el problema, los dos puntos, como muy bien me habíais indicado en primera instancia, y en segundo lugar había puesto mál uno de los campos de la tabla, que se llamaba "fecha recepcion' y en la consulta lo estaba llamando 'fecha entrada'. Os adjunto el código final que funciona:

Código Delphi [-]
With Datamodule1.ADOQuery_consultasFlujo Do
            Begin
              Close;
              SQL.Clear;
              SQL.Add('SELECT * FROM Entradas_Salidas_ECS WHERE tipo_de_entrada =:condicion1 and tipo_de_salida =:condicion2 and nombre =:condicion3');
              SQL.Add('and Fecha_salida BETWEEN :condicion4 and :condicion5 ');
              SQL.Add('and Fecha_recepcion BETWEEN :condicion6 and :condicion7');
              Parameters.ParamByName('condicion1').Value:=RG_Entradas.Items.strings[RG_Entradas.ItemIndex];
              Parameters.ParamByName('condicion2').Value:=RG_Salidas.Items.strings[RG_Salidas.ItemIndex];
              Parameters.ParamByName('condicion3').Value:='Test 1';
              Parameters.ParamByName('condicion4').Value:=E_Entrada_Inicio.Text;
              Parameters.ParamByName('condicion5').Value:=E_Entrada_Fin.Text;
              Parameters.ParamByName('condicion6').Value:=E_Salida_Inicio.Text;
              Parameters.ParamByName('condicion7').Value:=E_Salida_Fin.Text;
              Open;
            End;

De nuevo, siento haberos hecho perder el tiempo!! muchísimas gracias por vuestro interes y por vuestras respuestas. Tenéis un foro cojonudo, desde años que le hago consultas siempre que tengo alguna dudilla.

Vemos!
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
Sentencia SQL entre Fechas y horas Chogo Firebird e Interbase 2 29-10-2010 01:12:55
slq entre dos fechas comparar fechas taru MySQL 2 30-07-2007 16:10:36
Problemas de fechas entre Foxpro y Delphi reynaldo Tablas planas 4 20-06-2006 09:31:42
Problemas con Calculo entre Fechas CamiloU OOP 2 03-04-2006 23:48:51
Problema entre query y sentencia sql ilichhernandez Conexión con bases de datos 1 17-11-2005 21:00:05


La franja horaria es GMT +2. Ahora son las 00:02:57.


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