Delphi - Problemas con parametros a subconsultas

   
Vista:

Problemas con parametros a subconsultas

Publicado por Onam onamcornielle@hotmail.com (3 intervenciones) el 01/12/2014 16:02:31
hola tengo una consulta simple;

es la siguiente : Nota si pongo la fecha directamente me funciona bien.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
procedure TfrmConsRecibos.BitBtn1Click(Sender: TObject);
begin
 
  With Query1 do
 
      Begin
         Close;
         Sql.Clear;
         Sql.add('SELECT * FROM TClientes ');
         Sql.add('Where cli_codigo = (Select cli_codigo From TRecibos where rec_fecha
         between ''27-11-2014'' and ''27-11-2014'')');
         Sql.add('and cli_status <> '+#39+'INA'+#39);
         Sql.add('and emp_codigo = :emp ');
        open;
        if Query1.RecordCount > 0 then
        begin
          showMessage('Se han encontrado Registro en la Busqueda'+inttostr(Query1.RecordCount));
        end;

Hasta aquí todo esta bien, el problema es que cuando deseo poner la fecha de la sub-consulta con parámetros no me devuelve el valor deseado ejemplo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
With Query1 do
 
      Begin
         Close;
         Sql.Clear;
 
         Sql.add('SELECT * FROM TClientes ');
         Sql.add('Where cli_codigo = ( Select cli_codigo From TRecibos where rec_fecha
         between :fecha1 and :fecha2 ) ');
         Sql.add('and cli_status <> '+#39+'INA'+#39);
         Sql.add('and emp_codigo = :emp ');
 
         Parameters.parambyname('emp').Value := QEmpresasEMP_CODIGO.value;
 
         Parameters.parambyname('fecha1').Value := (fecha1.date);
         Parameters.parambyname('fecha2').Value := (fecha2.date);
 
 
        Open;

Si alguien ha trabajado con los parametros en una sub-consulta y le ha funcionado le agradeceria ayudarme.

Att. Ocornielle. Gracias!!.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Problemas con parametros a subconsultas

Publicado por E.T. (1107 intervenciones) el 06/12/2014 19:02:54
Deberia funcionarte igual, intenta de la siguiente forma

1
2
Parameters.parambyname('fecha1').AsString := FormatDateTime('yyyy/mm/dd', fecha1.date);
Parameters.parambyname('fecha2').AsString := FormatDateTime('yyyy/mm/dd', fecha2.date);

Solo modifica yyyy/mm/dd por el formato de fecha de tu manejador de base de datos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar