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-03-2009
lefarre lefarre is offline
Miembro
 
Registrado: ene 2008
Posts: 10
Poder: 0
lefarre Va por buen camino
Exclamation Crear una consulta filtrada por uno o más parametros

Hola, estoy lidiando con una cosulta sql y quisiera ver si podrian hecharle una miradita para ver que esta mal.
Lo que necesito es poder mostrar en un dbgrid los articulos de la tabla articulos filtrados por categoria, subcategoria y proveedor.
para despues poder imprimirlos o sea si se necesita un determinado proveedor se puede imprimir ese con todos sus articulos y ademas poder imorimir un categoria independiente del proveedor que sea.
Espero haberme explicado.
Para ello untilizo unos dbcombo para asignarle los parametros y un debedit en lo que sea la descrición.
Paso la consulta
dm1.QBA.Active:=false;
JvDBGrid1.DataSource:= DataSource1;
dm1.QBA.SQL.Clear;
dm1.QBA.SQL.Add('select * from articulos');
dm1.QBA.SQL.Add('WHERE No IN(:cambuscar, AND :categoria, AND :subcategoria, AND roveedor)order by descripcion');
dm1.QBA.Parameters.ParamByName('cambuscar').Value:= '%'+ lowercase(cambuscar.Text)+'%';
dm1.QBA.Parameters.ParamByName('categoria').Value := categoria.Text;
dm1.QBA.Parameters.ParamByName('subcategoria').Value := subcategoria.Text;
dm1.QBA.Parameters.ParamByName('proveedor').Value:= proveedor.Text;
dm1.QBA.Active:=true;
if dm1.QBA.IsEmpty then showmessage('No se encuentra en la base de datos');
cambuscar.SetFocus;
Desde ya muchas gracias.
Responder Con Cita
  #2  
Antiguo 31-03-2009
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Hola, cuando utilizas el In no debes añadir el AND, solo debe estar separado por comas y lo que se esta pregunta es si el registro con el campo No esta en el conjunto que le has dado, pregunta tu proveedor, categoria, subcategoría esta en tu campo No

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
  #3  
Antiguo 31-03-2009
lefarre lefarre is offline
Miembro
 
Registrado: ene 2008
Posts: 10
Poder: 0
lefarre Va por buen camino
Ahora no me seleccioan los dbcombo un valor

Gracias ante todo por tu pronta respuesta.Asi quedo, ya que el campo "N"o no era el que necesitaba buscar sino más bien el campo "descripción".
La idea seria poder encontrar esa descripcion con esos paramentros.
¿Esta esta descripcion en la categoria tal con la subcategoria tal y el proveedor tal.?
Ahora me sale siempre el mensaje que no se encontro nada pero además no puedo seleccionar los datos en los dblookupcombo.
dm1.QBA.Active:=false;
JvDBGrid1.DataSource:= DataSource1;
dm1.QBA.SQL.Clear;
dm1.QBA.SQL.Add('select * from articulos');
dm1.QBA.SQL.Add('WHERE descripcion IN(:cambuscar,:categoria,:subcategoria,roveedor)order by descripcion');
dm1.QBA.Parameters.ParamByName('cambuscar').Value:= '%'+ lowercase(cambuscar.Text)+'%';
dm1.QBA.Parameters.ParamByName('categoria').Value := categoria.Text;
dm1.QBA.Parameters.ParamByName('subcategoria').Value := subcategoria.Text;
dm1.QBA.Parameters.ParamByName('proveedor').Value:= proveedor.Text;
dm1.QBA.Active:=true;
if dm1.QBA.IsEmpty then showmessage('No se encuentra en la base de datos');
cambuscar.SetFocus;
Desde ya muchas gracias.Saludos a todos.
Responder Con Cita
  #4  
Antiguo 31-03-2009
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
Mas bien lo que te hace falta es leer un poco más sobre SQL...

Código SQL [-]
Select TusCampos
From TuTabla
Where Descripcion like :cambuscar
and Categoria = :Categoria
and SubCategoria = :Categoria
and Proveedor = :Proveedor
__________________

Responder Con Cita
  #5  
Antiguo 31-03-2009
Avatar de julyus
julyus julyus is offline
Miembro
 
Registrado: jul 2006
Ubicación: IN TO PLACES COLOMBIA AND EE.UU
Posts: 121
Poder: 18
julyus Va por buen camino
mas claro no canta un gallo
Responder Con Cita
  #6  
Antiguo 31-03-2009
lefarre lefarre is offline
Miembro
 
Registrado: ene 2008
Posts: 10
Poder: 0
lefarre Va por buen camino
Muchas gracias y es algo que ya lo estoy haciendo

Gracias ante todo por aclararme dudas. Ya probe la consulta en la base y anda.
Solo me surge un problema y es que en la tabla articulos guardo los codigos de las categorias, subcateg y proveedores por medio de un lookupcombo que muestra la descripcion y guarda el codigo.
El tema es que no logro que me busque desde le form con los lookupcombo de la misma manera. (no se que propiedad debo usar.)
La idea es no tener que recordar los codigos y poder seleccionar la descripcion.

Probe con Text y con keyfield.

El codigo esta quedando asi.

Código SQL [-]
dm1.QBA.Active:=false;
JvDBGrid1.DataSource:= DataSource1;
dm1.QBA.SQL.Clear;
dm1.QBA.SQL.Add('select * from articulos');
dm1.QBA.SQL.Add('where lower(descripcion) like :cambuscar and codcateg = :categoria and codsubcateg = :subcategoria and codprov = roveedor order by descripcion');
dm1.QBA.Parameters.ParamByName('cambuscar').Value:= '%'+ lowercase(cambuscar.Text)+'%';
dm1.QBA.Parameters.ParamByName('categoria').Value := categoria.Text;
dm1.QBA.Parameters.ParamByName('subcategoria').Value := subcategoria.KeyField;
dm1.QBA.Parameters.ParamByName('proveedor').Value:= proveedor.KeyField;
dm1.QBA.Active:=true;
if dm1.QBA.IsEmpty then showmessage('No se encuentra en la base de datos');
cambuscar.SetFocus;




PD: Agradecere link de manual buen manual sql mientras tanto empese por alguno que encotre en google.
Responder Con Cita
  #7  
Antiguo 31-03-2009
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
¿los loockUpCombBox son los que vienen en las JEDI?

Si es así, entonces es con "KeyValue".
__________________

Responder Con Cita
  #8  
Antiguo 31-03-2009
lefarre lefarre is offline
Miembro
 
Registrado: ene 2008
Posts: 10
Poder: 0
lefarre Va por buen camino
No hay caso che

Prove con los lookup combo de delphi y los de jedi con la propiedad KeyValue, Text, KeyField y ListField.
No logro que tome el valor del combo como parametro.
Desde ya muchas gracias.
Responder Con Cita
  #9  
Antiguo 31-03-2009
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
Entonces hay otra cosa que no estas haciendo correctamente. Yo te puedo asegurar, que esto funciona perfectamente:

Código Delphi [-]
with UnAdoQuery do begin
 if active then close;
 SQL.Clear;
 SQL.Add('Select Nombre');
 SQL.Add('From Cliente');
 SQL.Add('Where Clave = :Clave');
 Parameters.ParamByName('Clave').Value := cmbClientes.KeyValue; //TjvDBLoockUpCombo
 Open;
 Showmessage(FieldByName('Nombre').AsString);
end; //with

Prueba a hacer esto:
Showmessage(Proveedor.KeyValue);
para ver que valor te muestra.
__________________

Responder Con Cita
  #10  
Antiguo 01-04-2009
lefarre lefarre is offline
Miembro
 
Registrado: ene 2008
Posts: 10
Poder: 0
lefarre Va por buen camino
Thumbs up Solucionado

Muchisimas Gracias
Me sirvio mucho tu ayuda para corroborar los valores de los parametros y detectar el error.
Error cometido en el Dataset que no apuntaba a QBA sino al TADO de la tabla.
Cambiando eso funciona perfectamente.
Saludos y nuevamente muchas gracias.
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
Crear una Consulta Tquey con parámetros GerTorresM OOP 9 08-08-2007 13:06:09
Busqueda en Tabla Filtrada don malo Conexión con bases de datos 9 04-07-2007 20:54:53
DBChart, Tabla filtrada ? Fabricio Gráficos 9 14-03-2007 15:30:44
Parametros en Consulta SQL joi Varios 2 31-10-2005 19:36:49
Conflicto entre Query y Tabla filtrada Michael Varios 2 20-05-2004 21:37:43


La franja horaria es GMT +2. Ahora son las 08:46: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