RELACIONES -> DATASET

05/05/2005 - 16:39 por Pablo | Informe spam
Hola,

Cargo con FILL el dataset con mis 16 tablas.
Pero no me carga NINGUNA RELACION?

Alguien sabe hacia donde camino. O con qué comando ...
 

Leer las respuestas

#1 Fernando Ruiz
05/05/2005 - 18:51 | Informe spam
Hola Pablo,

Puedes crearte un esquema del dataset que defina el dataset que vas a
cargar, es decir, si tienes un componente DataAdapter o varios desde los que
haces el Fill pues desde cualquiera de ellos puedes generar lo que se llama
"Generar Conjunto de datos". Con esta función te creará un esquema ( .xsd )
con la tabla de ese DataAdapter, y si marcas el resto de tablas que las
obtienes desde otros Dataadapter pues te genera un único Esquema con todas
esas tablas.

Hasta aquí espero que me haya explicado más o menos bien.
Ahora con el editor de esquemas xml que tienes incorporado en el Visual
Studio puedes editar el esquema que has generado.

En este esquema te aparecen todas las tablas de cada uno de los DataAdapters
que seleccionaste antes. Mediante este entorno de edición te permite hacer
relaciones entre las tablas ( como si fuese el diseño de las relaciones en un
motor de bases de datos ). Estas relaciones no tienen porque existir en la BD
desde la que cojas los datos mediante el DataAdapter e incluso pueden ser
datos que provengan desde diferentes BD, motores de BD, etc ( gran punto a
favor de esta tecnología para sistemas que utilicen diferentes fuentes de
datos y que tengan que relacionarse entre ellas ).
Una vez que establezcas esas relaciones, se almacenan dentro del esquema que
habíamos creado y que estamos editando ( el archivo .xsd ).

Una vez hecho esto ya podemos considerar que las relaciones entre las tablas
las tenemos definidas a nuestro gusto dentro del Esquema.
Ahora solo tienes que crear por ejemplo un objeto DATASET pero del tipo que
corresponde al esquema que has creado. Esto es muy fácil, porque una vez que
has creado el esquema .xsd se añade al proyecto como si fuese una clase más y
que deriva del objecto DATASET... por lo que es una clase dataset pero con
ciertas propiedades más que son las que definen las tablas, columnas, tipos
de datos, relaciones, etc
Para crear el objeto simplemente deberías hacer lo siguiente:

dim mi_datasetpersonalizado as new DS_ESPECIFICO

DS_ESPECIFICO corresponde al nombre del archivo .xsd que has creado dentro
del proyecto.

Con esto le estas diciendo que el objeto que estás creado tiene la
estructura definida por la clase que corresponde al esquema xml que creamos
antes, por lo que conocerá las tablas que existen, la columnas, los tipos de
datos, las relaciones entre las tablas, etc...

Hecho esto, solamente tienes que hacer un FILL a ese dataset
"personalizado", pero tienes que tener cuidado en el orden en el que haces el
"llenado", ya que si haces un fill con un DataAdapter de una tabla que tiene
una relación con otra que es la que tiene el campo KEY y existe una
restricción que impide que sea null, pues te dará un error de restricción, ya
que el mismo dataset "personalizado" te estará aplicando las restricciones
para que se cumplan la integridad según las referencias que hayas definido.
Por ello tendrías que empezar por hacer los FILL de las tablas principales (
las que contienen los KEYs ) y luego por las que se enlazan a esos KEYs. De
esta forma no te darán ningún problema en el momento del "llenado".

Por ejemplo si tienes dos tablas, una con los clientes ( en la que tienes un
campo Key denominado idcliente ) y otra tabla pedidos ( en la que tienes un
campo idclientepedido que se enlaza a la tabla clientes mediante una relación
), pues primero tendrías que hacer el FILL de clientes y luego la de la tabla
pedidos...

También de igual forma tienes que tener cuidado con el momento de hacer el
UPDATE y DELETE en los DataAdapters para que en la BD no tengas problemas de
integridad Es decir no podrías hacer una eliminación de los clientes
antes de eliminar todos sus pedidos etc...

Espero que todo este rollo te haya servido de algo.

Saludos.




"Pablo" escribió:

Hola,

Cargo con FILL el dataset con mis 16 tablas.
Pero no me carga NINGUNA RELACION?

Alguien sabe hacia donde camino. O con qué comando ...




Preguntas similares