none
Mi Primer DataSet con dos Tablas Relacionadas RRS feed

  • Pregunta

  • Hola a todos/as.

    Estoy preparando mi primer DataSet con dos tablas relacionadas y se me generan ciertas dudas de diseño.

    Por ejemplo parto de una Tabla principal las Ordenes, que contiene un campo de producto que se relaciona con la tabla Productos y su campo Cód. Producto que es Primary Key, con la intención que desde el Form de Ordenes tenga un ComboBox que contenga todos los Productos a elegir.

    En el SqlServer 2005 Express creo las dos tablas y genero una Clave Foránea en la tabla Ordenes y su campo producto, y el administrador de claves me pide que como Tabla principal indique la tabla Productos con su campo Primary Key Cód. Producto, y en la tabla Ordenes como tabla secundaria su propio campo producto, y además le indico explícitamente que genere una Relación con Foreign Key.

    Hasta aquí todo correcto, pero cuando me traslado al entorno de desarrollo creo ver la relación al revés, es decir, cuando genero un nuevo DataSet Tipificado con el origen de datos indicando las dos tablas, me genera automáticamente un "Cross Join", y en el visor "xsd" cuando accedo a la relación la tabla principal pasa a ser Ordenes y no Productos como cuando creábamos la Foreign Key,
    y por lo que veo esto permite ver en el administrador de DataSets la tabla Ordenes con todos sus campos y al final un enlace más con la tabla Productos.

    ¿ Entiendo que esto debe de ser así para cualquier relación que se monte con DataSets entre Tablas, por muchos niveles de Joins que hayan entre ellas ?

    ¿ Y esta manera de relacionar en el DataSet al revés respecto al diseño Sql original, garantiza que pueda ver todos los Cód. de Productos de la Tabla Productos en mi ComboBox cuando desde el Form de Ordenes entre en el Campo Producto, o bien tengo que hacer una carga prévia en el ComboBox  ?

    En fin, ya veis que tengo dudas existenciales con mi primer DataSet relacionado, y si alguien tiene alguna idea aclaratoria se lo agradezco mucho.

    Saludos.

    • Cambiado Gustavo Larriera lunes, 21 de septiembre de 2009 19:03 Foro adecuado. (De:SQL Server)
    martes, 21 de noviembre de 2006 16:19

Todas las respuestas

  • Hola Juanca,

    Quizas no sea el mas apropiado para contestar, sin embargo, algunos de nosotros explotamos las vistas de SQL Server desde adaptadores de tablas, ello me permite ver el resultado desde la aplicacion como un unico conjunto o  tabla... por ejemplo :

    SELECT     dbo.Tabla1.Codigo, dbo.Tabla2.Descripcion AS Categoria, dbo.Ambito.Descripcion AS Ambito, dbo.Tabla3.Descripcion AS Zona, dbo.Tabla5.Spanish AS Texto, dbo.Tabla4.Descripcion AS Elemento
    FROM         dbo.Ambito INNER JOIN
                          dbo.Tabla1 ON dbo.Ambito.Unidad = dbo.Tabla1.Ambito INNER JOIN
                          dbo.Tabla2 ON dbo.Tabla1.Categoria = dbo.Tabla2.Categoria INNER JOIN
                          dbo.Tabla4 ON dbo.Tabla1.Elemento = dbo.Tabla4.Elemento INNER JOIN
                          dbo.Tabla5 ON dbo.Tabla1.Mensaje = dbo.Tabla5.Mensaje INNER JOIN
                          dbo.Tabla3 ON dbo.Tabla1.Zona = dbo.Tabla3.Zona
    WHERE     (dbo.Tabla1.Codigo = ElCodigoBuscado)

    Supongo que no te servira de mucho... y creo que no es la respuesta que esperas, pero la era cuestion de intentarlo, a ver si alguien mas se anima.
    Pep Lluis,

    martes, 21 de noviembre de 2006 18:15