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

 
 
Herramientas Buscar en Tema Desplegado
  #8  
Antiguo 25-07-2024
Avatar de mRoman
mRoman mRoman is offline
Miembro
 
Registrado: nov 2003
Posts: 646
Poder: 23
mRoman Va por buen camino
Cita:
Empezado por GINMARMENOR Ver Mensaje
Buenas de nuevo, y gracias en serio.

La siguiente secuencia funciona BIEN que es la que MRoman, por un lapsus dije no.

Código SQL [-]
          select * motivos where año IN (1925,1955);

Pero el texto completo es el siguiente que no lo puse por simplificar:

Código SQL [-]
           ibQueryMotivos.close;
           IbQueryMotivos.Clear;
           IbQueryMotivos.text:='select * motivos where año IN (1925,1955)';
           IbQueryMotivos.open;

Con esto puedo meter los datos filtrados en un dbgrid, stringGrid, Rave Reports, etc etc sin problemas pero al estar en unas comillas sólo puedo elegir los años (1925, 1955, etc.etc) en modo diseño y no en modo ejecucion, lo que necesitaría es meter los años en un Listbox, en una Variable u otro contenedor, y de ahí diseñar el Query para que sólo salgan los años que necesito.
Hola...una observación: En la propiedad TEXT del "ibQuery", no te hace falta "FROM" en la sentencia SELECT??... "select * FROM motivos..." y otra obervación, el campo AÑO te permite la "Ñ"??...la verdad nunca he usado la Ñ en los campos que creo en Firebird, no sé si lo permita. En realidad los declaro -en el caso del año- como ANIO.

Ahora, creo que el componente del IBQuery, quedaría asi:

Código Delphi [-]
IBQueryMotivos.SQL.Clear;
IBQueryMotivos.SQL.Add('select * from motivos where año in '+ANIOS2);
IBQueryMotivos.Open;

Para cuando se ejecute las instrucciones anteriores, ya deberá traer datos la variable ANIOS2:
Código:
 (1973,1910,1917)
Concatenando los paréntesis al inicio y al final de la cadena, que también deberas inlcuir en la cadena la coma "," para separar un año del otro

Te envío un ejemplo de como lo uso
Código Delphi [-]
              aQrySic.SQL.LoadFromFile(ExtractFilePath(Application.ExeName)+'\SQLS\SCA_SOME_PROMOTORES.SQL');
              aQrySic.SQL.Add('    and pmt_numero in '+cPromotor);
              aQrySic.SQL.Add(' order by lec_numero, numero_tarjeta');
              aQrySic.Open;

Aqui lleno la variable "cPromotor" con las claves de algunos promotores que el usuario ha seleccionado:

Código Delphi [-]
              2: begin // SELECCIONA ALGUNOS PROMOTORES
                    qryLecherias.DisableControls;
                    BM:=qryLecherias.Bookmark;
                    try
                        with dbgLecherias.DataSource.DataSet do
                        for i:=0 to dbgLecherias.SelectedRows.Count-1 do
                        begin
                           qryLecherias.Bookmark:=dbgLecherias.SelectedRows.Items[i];
                           cPromotor:=cPromotor+qryLecherias.fieldbyname('DATO1').AsString;
                            if i<>dbgLecherias.SelectedRows.Count-1 then
                            begin
                               cPromotor:=cPromotor+',';
                            end;
                        end;
                    finally
                        qryLecherias.Bookmark:=BM;
                        qryLecherias.EnableControls;
                    end;
                    if cPromotor<>'' then
                    begin
                        cPromotor:='('+cPromotor+')';
                        aQrySic.SQL.Clear;
                        aQrySic.SQL.LoadFromFile(ExtractFilePath(Application.ExeName)+'\SQLS\SCA_SOME_PROMOTORES.SQL');
                        aQrySic.SQL.Add('    and pmt_numero in '+cPromotor);
                        aQrySic.SQL.Add(' order by lec_numero, numero_tarjeta');
                    end;
                 end;

Usé la sentencia CASE en programación para seleccionar la opción 0,1 o 2 de un combo que el usuario selecciona para saber que tipo de procesamiento se va a realizar, estos serían los ITEMS del combo:

Código:
Todas las lecherias todos los promotores
Algunas Lecherias
Algunos promotores social
Espero te sirva esta orientación.

Saludos.
__________________
Miguel Román

Afectuoso saludo desde tierras mexicanas....un aguachile?, con unas "cetaseas" bien "muertas"?, VENTE PUES !!

Última edición por mRoman fecha: 25-07-2024 a las 18:59:51.
Responder Con Cita
 



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
SELECT para encontrar registros con diferentes valores en el mismo campo gustavosv SQL 12 17-10-2014 22:34:35
Consulta de un mismo campo rufo Varios 10 16-08-2012 03:26:28
Consulta de valores consecutivos Guillermosalva SQL 5 27-07-2007 08:49:15
Pasar un campo calculado a un campo del mismo DbGrid maravert Conexión con bases de datos 3 12-05-2006 00:31:30
Campo de tabla con valores con un mismo nombre kakesoft Conexión con bases de datos 14 28-11-2005 14:40:46


La franja horaria es GMT +2. Ahora son las 11:38:56.


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