Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   Error en la Búsqueda (https://www.clubdelphi.com/foros/showthread.php?t=81295)

Detenido 31-10-2012 15:05:54

Error en la Búsqueda
 
1 Archivos Adjunto(s)
Estimados, trabajo utilizando Delphi 6 con base de datos paradox y motor BDE. Lo que necesito hacer es realizar una consuta Sql a la tabla de nombre "ingresos" para recuperar los datos correspondientes a los campos "año", "mes" y el campo "codigo" para enviarlos a un informe, lo anterior lo he tratado de hacer utilizando el siguiente código sin éxito:

Código Delphi [-]
procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
if combobox1.Text = 'Enero' then
        begin
                form2.query1.close;
                form2.query1.sql.clear;
                form2.query1.sql.add('select * from ingresos where extract(year from fdoc) ='+ combobox2.Text +' and extract(month from fdoc)=1 ');
                form2.Query1.SQL.Add('select * from ingresos where código  =:codigo');
                form2.Query1.ParamByName('codigo').Value:= combobox3.Text;
                form2.query1.execsql;
                form2.query1.open;
                form2.QuickRep1.Preview
        end

Bueno los objetos utilizados son los que se muestran en la siguiente imagen. También les dejo el error que se genera. Agradecería infinitamente una ayudita para solucionar mi problema. Gracias.

marcoszorrilla 31-10-2012 15:44:52

Cita:

Empezado por Detenido (Mensaje 448416)
Estimados, trabajo utilizando Delphi 6 con base de datos paradox y motor BDE. Lo que necesito hacer es realizar una consuta Sql a la tabla de nombre "ingresos" para recuperar los datos correspondientes a los campos "año", "mes" y el campo "codigo" para enviarlos a un informe, lo anterior lo he tratado de hacer utilizando el siguiente código sin éxito:

Código Delphi [-]
procedure TForm1.SpeedButton1Click(Sender: TObject); 
begin if combobox1.Text = 'Enero' then 
        begin                 
form2.query1.close;
                 form2.query1.sql.clear; 
                form2.query1.sql.add('select * from ingresos where extract(year from fdoc) ='+ combobox2.Text +' and extract(month from fdoc)=1 ');                 
form2.Query1.SQL.Add('And código  =:codigo');
               form2.Query1.ParamByName('codigo').Value:= combobox3.Text; 
                
                 form2.query1.open;
                 form2.QuickRep1.Preview
         end
Bueno los objetos utilizados son los que se muestran en la siguiente imagen. También les dejo el error que se genera. Agradecería infinitamente una ayudita para solucionar mi problema. Gracias.

Haz la corrección indicada pues has repetido la palabra reservada SELECT.

Esta consulta debe de abrirse con Open no con ExecSql.


Un Saludo.

Caro 31-10-2012 15:44:55

Hola Detenido, estas utilizando 2 Select, solo debes utilizar 1 y para ejecutar tu consulta solo Open.

Código Delphi [-]
 .................................
 With form2.query1 do
 begin
  close;
  sql.clear;
  sql.add('select * from ingresos where extract(year from fdoc) ='+ 
  combobox2.Text +' and extract(month from fdoc)=1 and codigo=:codigo');  
  ParamByName('codigo').Value:= combobox3.Text;
  open;
  form2.QuickRep1.Preview
 end;
 ........................

Saluditos

Detenido 31-10-2012 18:22:24

Excelente funcionó de maravillas muchas gracias a ambos. Hoy aprendí algo. Saludos.


La franja horaria es GMT +2. Ahora son las 10:09:55.

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