Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 22-10-2008
Pollo2004 Pollo2004 is offline
Miembro
 
Registrado: sep 2006
Posts: 64
Poder: 18
Pollo2004 Va por buen camino
Exclamation Tantos TQuery como consultas deseo?

Hola a todos nuevamente, sigo muy agradecido por toda la ayuda brindada por el foro, y deseo mucho algun dia poder colaborar de la misma manera q lo hacen ustedes.
Estoy queriendo aprender un poco de SQL y mi pregunta es esta. yo a una tabla le puedo hacer muchas consultas, pongamos un ejemplo
Tengo una tabla de productos, y quiero buscar uno, tambien quiero controlar q ningun producto tenga stock= 0 y alguna otra q ustedes se imaginen.

otro ejemplo:
O buscar un producto por nombre, o codigo, o lo q fuese, tengo q poner un TQuery para cada busqueda y activar cada query con una accion de un boton o de otro componente.

Como seria la cosa?

Sigo usando paradox 7!
Gracias!
Responder Con Cita
  #2  
Antiguo 22-10-2008
Avatar de enecumene
[enecumene] enecumene is offline
Miembro de Oro
 
Registrado: may 2006
Ubicación: Santo Domingo, Rep. Dom.
Posts: 3.040
Poder: 22
enecumene Va por buen camino
Hola, no amigo no es necesario un TQuery por cada búsqueda, con uno basta ejemplo:

Código Delphi [-]
if ComboBox1.Text = 'Codigo' then
  begin
     Query1.Close;
     Query1.SQL.Clear;
     Query1.SQL.Text := 'select * from tabla where codigo = '12345'';
     Query1.Open;
  end;
if ComboBox1.Text = 'Nombre' then
  begin
     Query1.Close;
     Query1.SQL.Clear;
     Query1.SQL.Text := 'select * from tabla where Nombre = 'Pedro'';
     Query1.Open;
  end;
if ComboBox1.Text = 'Producto' then
  begin
     Query1.Close;
     Query1.SQL.Clear;
     Query1.SQL.Text := 'select * from tabla where producto = 'Jabon'';
     Query1.Open;
  end;

en este ejemplo estoy usando un sólo Query.

Saludos.
__________________

Mi BLOG - ¡Joder, leanse la guia de estilo!
Las Palabras son enanas, los ejemplos gigantes.
Responder Con Cita
  #3  
Antiguo 22-10-2008
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 24
ContraVeneno Va por buen camino
Código Delphi [-]
with UnQuery do begin
 If active then close;
 SQL.Clear;
 SQL.Add('Select LosCampos ');
 SQL.Add('From UnTabla');
 Case ComboBox1.ItemIndex Of Begin
  0:   SQL.Add('Where Codigo = :Valor ');
  1:   SQL.Add('Where Nombre = :Valor ');
  2:   SQL.Add('Where Producto = :Valor ');
 end; //Case
 ParamByname('Valor').AsString := UnEdit.Text;
 Open;
end;  //with
__________________

Responder Con Cita
  #4  
Antiguo 22-10-2008
[coso] coso is offline
Miembro Premium
 
Registrado: may 2008
Ubicación: Girona
Posts: 1.678
Poder: 0
coso Va por buen camino
Código Delphi [-]
q.Active := false;
q.SQL.Text := 'select * from tabla where ' + ComboBox.Text + ' = ' + QuotedStr(edit.text);
q.Active := true;
Responder Con Cita
  #5  
Antiguo 22-10-2008
Avatar de AzidRain
[AzidRain] AzidRain is offline
Miembro Premium
 
Registrado: sep 2005
Ubicación: Córdoba, Veracruz, México
Posts: 2.914
Poder: 21
AzidRain Va camino a la fama
Puedes hacer un solo query para consultar por uno o varios campos así:

Código Delphi [-]
q.SQL.Add('select * from productos where (:clave is null or clave=:clave) AND (:nombre is null or nombre like :nombre) OR (:stock is null or stock>=:stock) ');

Solo tienes que llenar los parámetros según requieras, si no llenas ninguno te va a traer todos los registros. Esta es una forma muy sencilla de hacer combinaciones de condiciones y utilizas un solo query. De esta manera podrias traer por ejemplo: todos los productos que contengan "PRO" en su nombre y que tengan stock de mas de 10.
Para ello llenamos los parametros así:

Código Delphi [-]
 q.parambyName('nombre').AsString := '%PRO%';
q.ParamByName('stock').AsInteger  := 10;
__________________
AKA "El animalito" ||Cordobés a mucha honra||
Responder Con Cita
  #6  
Antiguo 22-10-2008
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 24
ContraVeneno Va por buen camino
tómala, jejeje
__________________

Responder Con Cita
  #7  
Antiguo 22-10-2008
Avatar de rgstuamigo
rgstuamigo rgstuamigo is offline
Miembro
 
Registrado: jul 2008
Ubicación: Santa Cruz de la Sierra-Bolivia
Posts: 1.646
Poder: 17
rgstuamigo Va por buen camino
Talking

Ja,jaa,jaa,ja,ja,jaa, me sorprendieron.
Esta muy bueno, es lo que necesitaba tambien.......
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7
Responder Con Cita
  #8  
Antiguo 22-10-2008
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Yo creo que es cuestión de organización. Si vas a usar un solo query para todas las consultas, posiblemente signifique o implique que vas a tener tus consultas desperdigadas por todo el código. Puede ser preferible tener las partes limpiamente separadas.

// Saludos
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
Deseo.... un vinculo o una serie.... georkis PHP 8 22-06-2008 06:25:04
No me guarda el fichero en el directorio que deseo kapullok_2006 Varios 4 22-11-2007 10:21:17
Nunca se vieron tantos hombres y tantas patadas marcoszorrilla La Taberna 3 25-04-2007 19:49:47
Deseo instalar SQL en Delphi 7 JuanchoRM SQL 5 27-07-2006 10:22:31
Imprecion a tantos cm... marce Impresión 1 09-12-2003 16:23:49


La franja horaria es GMT +2. Ahora son las 03:00:10.


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