Club Delphi  
    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 31-10-2006
Avatar de Max_E.
Max_E. Max_E. is offline
Miembro
 
Registrado: sep 2006
Posts: 90
Poder: 18
Max_E. Va por buen camino
condicionales en SQL

Hola a todos

estoy utilizando un listbox, un radiogroup, Query para mostrar en un Dbgrid los datos del personal de un area especifica de un turno especifico, me explico:

quiero que...
al hacer click en el listbox (donde estan todas las areas) pero en el radiogrup ya esta señalado el turno (Que es turno A ó turno B solamente), me aparesca en el DBgrid los nombres de las trabajadores de area y del turno elegido, al hacer click en el listbox se ordena el llamado a la busqueda

en el SQL del query pongo algo parecido a:
Código SQL [-]
cadena:='select nombre, area, turno from personal where ( N_area ) and (N_turno)  order by nombre;
Query1.Sql.Clear;
query1.SQL.Add(cadena);
Query1.Open;

donde dentro de N_area esta el nombre del area y dentro de N_truno esta el turno como cadena

se puede hacer esto???? cual seria el codigo SQL correcto

gracias de ante mano por su ayuda
Responder Con Cita
  #2  
Antiguo 31-10-2006
Avatar de Bicho
[Bicho] Bicho is offline
Miembro Premium
 
Registrado: jul 2003
Ubicación: Inca - Mallorca
Posts: 1.776
Poder: 22
Bicho Va por buen camino
Hola, claro que se puede hacer, de ésta manera:

Código Delphi [-]
cadena:='select nombre, area, turno from personal where area = :n_area and turno = :N_turno  order by nombre';
Query1.Sql.Clear;
query1.SQL.Add(cadena);
Query1.Sql.Parambyname('n_area').Asstring := ListboxArea.Items.Strings[ListboxArea.ItemIndex];
if RadioGroup.ItemIndex = 1 then 
Query1.Sql.Parambyname('n_turno').Asstring := 'A'
else Query1.Sql.Parambyname('n_turno').Asstring := 'B';
Query1.Open;

Es una idea, se puede hacer de otra manera, pero así me gusta más.

Saludos
Responder Con Cita
  #3  
Antiguo 31-10-2006
Avatar de Max_E.
Max_E. Max_E. is offline
Miembro
 
Registrado: sep 2006
Posts: 90
Poder: 18
Max_E. Va por buen camino
hola denuevo, gracias por atender mi duda

pero sabes esta propiedad (Parambyname)no es reconocida asi que tube que cambiarla, supongo que es la que ingresa el nombre a n_area y n_turno
Query1.Sql.Parambyname('n_area').Asstring := ListboxArea.Items.Strings[ListboxArea.ItemIndex];
Query1.Sql.Parambyname('n_turno').Asstring := 'A'
este es el cambio

Código SQL [-]
procedure TForm1.ListBox1Click(Sender: TObject);
var
cadena,n_area,n_turno:string;
begin
Label4.Visible:=true;

n_area:=listbox1.Items.Strings[listbox1.ItemIndex];
if RadioGroup1.ItemIndex = 0 then
n_turno:='A'
else
n_turno:='B';

cadena:='select area, nombre, codigo, turno from personal where area = :'+ n_area +' and turno =:'+ N_turno + '  order by nombre';
Query1.Sql.Clear;
query1.SQL.Add(cadena);
Query1.Open;
end;

pero me sale un mensaje de error que dice

Query1:field 'electricidad' is of an unknown type

y no realiza nada logico...

miarchhivo de BD es asi


nombre codigo turno area
juan 125 A soporte
pedro 256 B Electricidad
luis 589 A menores
carlos 125 B soporte
. . . .
. . . .

podrias ver cual es el error....gracias por la ayuda que puedas darme
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
SQL´s con condicionales AMINOA2R Firebird e Interbase 3 02-02-2006 09:33:14


La franja horaria es GMT +2. Ahora son las 13:52:26.


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
Copyright 1996-2007 Club Delphi