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 07-05-2008
Avatar de Emilio_82
Emilio_82 Emilio_82 is offline
Miembro
 
Registrado: may 2008
Ubicación: Concepcion del Uruguay - Entre Rios - Argentina
Posts: 16
Poder: 0
Emilio_82 Va por buen camino
Consulta Sobre Query SQL y DBLookUpListBox en Paradox

Estoy ante el siguiente problema. Necesito mediate un DBLookUpListBox mostrar los proveedores asignados a un articulo en especial tengo 3 tablas de Paradox que estan en un directorio. Los paths estan todos correctos.

Articulos.DB - Proveedores.DB - ArtXProv.DB (en esta ultima, estan las Primary Key de cada una de las tablas anteriores, es decir es la tabla que x cada tupla representa un articulo y un proveedor (Nro_Art, Nro_Proveed))

En el form tengo para cada tabla su correspondiente Data Source y una Query llamada Q_Nom_Proveedores con su Data Source

En ella tengo en el campo SQL la siguiente SQL:
Código SQL [-]
SELECT Nro_Proveed FROM ArtXProv.DB
WHERE Nro_Art >0 AND Nro_Art = :Fk_art
Supuestamente esto devuelve para un valor de Fk_art los proveedores asignados a ese Articulo. No? Corrijanme si me equivoco.

En params le Puse que Fk_Art es Integer con value 1 o sea esta todo.


Ahora en el DBLookUpListBox esta seteado asi:
DataField = Nro_Proveed
DataSource = Dsc_Q_Nom_Proveed
KeyField = Nro_Proveed
ListField = Nombre_Proveed
ListSource = Dsc_Proveedores

Pasa que el DBLookUpListBox me muestra todos los proveedores, y no los proveedores asignados al articulo en ese momento. ¿Que puede estar fallando?

Nota: Aclaro que fk_art esta declarado en PUBLIC y que su valor cambia cada vez que elijo dentro del form un articulo desde la tabla Articulos.DB donde tomo el valor del Nro_Art

Última edición por Emilio_82 fecha: 07-05-2008 a las 23:33:50.
Responder Con Cita
  #2  
Antiguo 08-05-2008
[coso] coso is offline
Miembro Premium
 
Registrado: may 2008
Ubicación: Girona
Posts: 1.678
Poder: 0
coso Va por buen camino
A ver...
los valores del DBLookUpComboBox

DataSource := donde se cambiaran los datos
DataFields := campos q se variaran

ListSource := desde donde se rellenan la list (debe ser diferente del anterior o sino habria referencia circular)
ListFields := campos a representar

KeyField := el campo que realmente se pasara de una a otra.

creo q tienes las dos sources intercambiadas
Responder Con Cita
  #3  
Antiguo 08-05-2008
Avatar de Emilio_82
Emilio_82 Emilio_82 is offline
Miembro
 
Registrado: may 2008
Ubicación: Concepcion del Uruguay - Entre Rios - Argentina
Posts: 16
Poder: 0
Emilio_82 Va por buen camino
Cita:
Empezado por coso Ver Mensaje
A ver...
los valores del DBLookUpComboBox

DataSource := donde se cambiaran los datos
DataFields := campos q se variaran

ListSource := desde donde se rellenan la list (debe ser diferente del anterior o sino habria referencia circular)
ListFields := campos a representar

KeyField := el campo que realmente se pasara de una a otra.

creo q tienes las dos sources intercambiadas
Eso ya lo sabia coso, pero no tengo los sources intercambiados y y tampoco es un LookUpComboBox sino un LookUpListBox, que son mas o menos iguales.

Mas datos para que se entienda:
Esta es la estructura de la tabla ArtXProv.db con algunas tuplas (registros)
+---------+-------------+
¡.Nro_Art...¡ Nro_Proveed.¡
+---------+-------------+
¡ .............................
¡ .............................
¡ .............................
+---------+-------------+
La SQL de la Query Q_Nom_Proveedores debe devolver, (por ejemplo para fk_art = 1):
+--------------+
¡..Nro_Proveed. ¡
+--------------+
¡...................
¡...................
+--------------+

Entonces Si por ejemplo Nom_Proveedores(el campo a mostrar en el LookUpListBox de la BD Proveedores.db) es para 1: Nike, 2: Adidas; 3: Topper

el DBLookUpListBox, Deberia mostrar en panatalla SOLAMENTE

+--------------+
¡..NIKE.............¡
¡..TOPPER.........¡
+--------------+

Pero Muestra:

+--------------+
¡..NIKE.............¡
¡..ADIDAS.........¡
¡..TOPPER.........¡
+--------------+

Ese es mi problema
Nota: fk_art es la que se compara en la setencia SQL con Nro_Art
Q_Nom_Proveedores tiene como DataSource a ArtXProv.db O sea que no hay referencia circular

Última edición por Emilio_82 fecha: 08-05-2008 a las 02:27:55.
Responder Con Cita
  #4  
Antiguo 08-05-2008
[coso] coso is offline
Miembro Premium
 
Registrado: may 2008
Ubicación: Girona
Posts: 1.678
Poder: 0
coso Va por buen camino
Entonces la sentencia SQL de filtro la debes aplicar a la tabla de DSC_proveedores, no? estos son los que te apareceran en la lista
Responder Con Cita
  #5  
Antiguo 08-05-2008
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
Yo lo que no entiendo es de donde sale:

ListField = Nombre_Proveed

Yo al menos, lo resolvería así:
Código SQL [-]
SELECT A.Nro_Proveed, P.Nombre_Proveed FROM ArtXProv A
INNER JOIN Proveedores P on P.Nro_Proveed = A.Nro_Proveed
WHERE Nro_Art >0 AND Nro_Art = :Fk_art
.

Esa es la consulta del lookupList.ListSource, automáticamente obtienes el código y nombre del proveedor para mostrar.


Supongo que ahora mismo te aparece el "ADIDAS" porque se necesitaría una relación maestra-detalle que no está formada, pero vamos, que creo más simple la consulta que indico.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #6  
Antiguo 08-05-2008
Avatar de Emilio_82
Emilio_82 Emilio_82 is offline
Miembro
 
Registrado: may 2008
Ubicación: Concepcion del Uruguay - Entre Rios - Argentina
Posts: 16
Poder: 0
Emilio_82 Va por buen camino
Gracias Lepe, no habia probado hacer un JOIN. Ahora funciona
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
Consulta sobre un Query Ariel03 SQL 14 28-11-2007 19:25:07
Realizar una consulta sobre los registros que devuelve otra consulta Borjaserrano Firebird e Interbase 12 01-10-2007 23:19:44
Query a Tablas Paradox pelaorb68 Conexión con bases de datos 0 13-01-2006 23:25:25
Por favor, Ayuda en Query y paradox CarlosHernandez Conexión con bases de datos 1 25-07-2005 16:20:52
Query en Modo Red Con Paradox!! jmedina SQL 3 23-05-2005 06:11:42


La franja horaria es GMT +2. Ahora son las 16:56:15.


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