Se Puede Evitar el Caso Padre sin Hijos?

27/05/2004 - 00:13 por Nelson Rodriguez | Informe spam
Desearía saber si hay alguna manera de evitar el Caso de tablas "Padre" sin
"Hijos"?
O en otras palabras "cabezales" sin "líneas".

Gracias

Nelson Rodriguez
neroig@adinet.com.uy
Salto - Uruguay

Preguntas similare

Leer las respuestas

#1 Maxi
27/05/2004 - 01:12 | Informe spam
Hola, si que es posible pero no de forma directa :(, todo dependera de como
este armado tu sistema pero yo por ej en mi Store de insert de una factura
suponete si no hay detalle no dejo que se inserte y lo controlo desde aca.

Tambien si programas en capas podrias poner esta logica de negocios en la
capa correspondiente por lo cual la cosa seria mas optima :-) tu fijate cual
es mejor para tu diseño.

Bye


Salu2

Maxi

Desarrollador 3 estrellas .NET
Buenos Aires - Argentina

MSN:

"Nelson Rodriguez" escribió en el mensaje
news:OBHWr%
Desearía saber si hay alguna manera de evitar el Caso de tablas "Padre"


sin
"Hijos"?
O en otras palabras "cabezales" sin "líneas".

Gracias

Nelson Rodriguez

Salto - Uruguay


Respuesta Responder a este mensaje
#2 Javier Loria
27/05/2004 - 03:16 | Informe spam
Hola Nelson:
De forma declarativa (o sea con Llaves Foraneas) no es posible.
Procedimentalmente (por procedimientos almacenados) si, es la unica forma
que conozco.
Saludos,

Javier Loria
Costa Rica
Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
que pueda ser copiado y pegado al Query Analizer.
La version de SQL y Service Pack tambien ayuda.
Nelson Rodriguez escribio:
Desearía saber si hay alguna manera de evitar el Caso de tablas
"Padre" sin "Hijos"?
O en otras palabras "cabezales" sin "líneas".

Gracias

Nelson Rodriguez

Salto - Uruguay
Respuesta Responder a este mensaje
#3 Nelson Rodriguez
27/05/2004 - 12:16 | Informe spam
Maxi, tambien si va eliminando líneas de una factura YA grabada
anteriormente hasta dejarla sin líneas.
Te pediría, si no tienes inconvenientes, me pasaras un ejemplo de como tu lo
haces.

Gracias

"Maxi" escribió en el mensaje
news:
Hola, si que es posible pero no de forma directa :(, todo dependera de


como
este armado tu sistema pero yo por ej en mi Store de insert de una factura
suponete si no hay detalle no dejo que se inserte y lo controlo desde aca.

Tambien si programas en capas podrias poner esta logica de negocios en la
capa correspondiente por lo cual la cosa seria mas optima :-) tu fijate


cual
es mejor para tu diseño.

Bye


Salu2

Maxi

Desarrollador 3 estrellas .NET
Buenos Aires - Argentina

MSN:

"Nelson Rodriguez" escribió en el mensaje
news:OBHWr%
> Desearía saber si hay alguna manera de evitar el Caso de tablas "Padre"
sin
> "Hijos"?
> O en otras palabras "cabezales" sin "líneas".
>
> Gracias
>
> Nelson Rodriguez
>
> Salto - Uruguay
>
>


Respuesta Responder a este mensaje
#4 Carlos Sacristan
27/05/2004 - 12:31 | Informe spam
Bueno, todo eso que comentas se puede implementar en la lógica de un
procedimiento almacenado. Podrías tener uno para insertar la primera línea,
en el que le tendrías que pasar los datos de la cabecera también, menos el
código de ésta, claro está, y este procedimiento te devolvería los códigos
de cabecera y línea recién insertados (preferiblemente a través de
parámetros de retorno). El resto de las líneas las podrías insertar a través
de un procedimiento que sólo requiriera el identificador de la cabecera,
aunque también lo podrías hacer en el mismo que te he comentado antes,
teniendo en cuenta que sólo iría el identificador de la cabecera a NULL
cuando fueras a crear un nuevo pedido.

El caso de eliminación es similar: tendrías que comprobar que si se
borra la última línea, se elimine también la cabecera.

Como verás, el hecho de manipular los datos a través de procedimientos
almacenados da mucho más juego que unos simple INSERT o DELETE lanzados
directamente desde la aplicación cliente. Eso sin tener en cuenta las otras
ventajas que poseen...



Un saludo

-
"Sólo sé que no sé nada. " (Sócrates)

Por favor, responder únicamente al foro
Se agradece la inclusión de sentencias DDL


"Nelson Rodriguez" escribió en el mensaje
news:
Maxi, tambien si va eliminando líneas de una factura YA grabada
anteriormente hasta dejarla sin líneas.
Te pediría, si no tienes inconvenientes, me pasaras un ejemplo de como tu


lo
haces.

Gracias

"Maxi" escribió en el mensaje
news:
> Hola, si que es posible pero no de forma directa :(, todo dependera de
como
> este armado tu sistema pero yo por ej en mi Store de insert de una


factura
> suponete si no hay detalle no dejo que se inserte y lo controlo desde


aca.
>
> Tambien si programas en capas podrias poner esta logica de negocios en


la
> capa correspondiente por lo cual la cosa seria mas optima :-) tu fijate
cual
> es mejor para tu diseño.
>
> Bye
>
>
> Salu2
>
> Maxi
>
> Desarrollador 3 estrellas .NET
> Buenos Aires - Argentina
>
> MSN:
>
> "Nelson Rodriguez" escribió en el mensaje
> news:OBHWr%
> > Desearía saber si hay alguna manera de evitar el Caso de tablas


"Padre"
> sin
> > "Hijos"?
> > O en otras palabras "cabezales" sin "líneas".
> >
> > Gracias
> >
> > Nelson Rodriguez
> >
> > Salto - Uruguay
> >
> >
>
>


Respuesta Responder a este mensaje
#5 Maxi
27/05/2004 - 16:52 | Informe spam
Hola Carlos!! no entendi tu modelo :( serias tan amable de postiar un
poquitin de codigo?

gracias


Salu2
Maxi
Buenos Aires - Argentina
Desarrollador Microsoft 3 Estrellas .NET
Nunca consideres el estudio como una obligación sino como
una oportunidad para penetrar en el bello y maravillosos
mundo del saber.
- Albert Einstein



"Carlos Sacristan" <csacristan ARROBA mvps.org> escribió en el mensaje
news:%

Bueno, todo eso que comentas se puede implementar en la lógica de un
procedimiento almacenado. Podrías tener uno para insertar la primera


línea,
en el que le tendrías que pasar los datos de la cabecera también, menos el
código de ésta, claro está, y este procedimiento te devolvería los códigos
de cabecera y línea recién insertados (preferiblemente a través de
parámetros de retorno). El resto de las líneas las podrías insertar a


través
de un procedimiento que sólo requiriera el identificador de la cabecera,
aunque también lo podrías hacer en el mismo que te he comentado antes,
teniendo en cuenta que sólo iría el identificador de la cabecera a NULL
cuando fueras a crear un nuevo pedido.

El caso de eliminación es similar: tendrías que comprobar que si se
borra la última línea, se elimine también la cabecera.

Como verás, el hecho de manipular los datos a través de procedimientos
almacenados da mucho más juego que unos simple INSERT o DELETE lanzados
directamente desde la aplicación cliente. Eso sin tener en cuenta las


otras
ventajas que poseen...



Un saludo

-
"Sólo sé que no sé nada. " (Sócrates)

Por favor, responder únicamente al foro
Se agradece la inclusión de sentencias DDL


"Nelson Rodriguez" escribió en el mensaje
news:
> Maxi, tambien si va eliminando líneas de una factura YA grabada
> anteriormente hasta dejarla sin líneas.
> Te pediría, si no tienes inconvenientes, me pasaras un ejemplo de como


tu
lo
> haces.
>
> Gracias
>
> "Maxi" escribió en el mensaje
> news:
> > Hola, si que es posible pero no de forma directa :(, todo dependera de
> como
> > este armado tu sistema pero yo por ej en mi Store de insert de una
factura
> > suponete si no hay detalle no dejo que se inserte y lo controlo desde
aca.
> >
> > Tambien si programas en capas podrias poner esta logica de negocios en
la
> > capa correspondiente por lo cual la cosa seria mas optima :-) tu


fijate
> cual
> > es mejor para tu diseño.
> >
> > Bye
> >
> >
> > Salu2
> >
> > Maxi
> >
> > Desarrollador 3 estrellas .NET
> > Buenos Aires - Argentina
> >
> > MSN:
> >
> > "Nelson Rodriguez" escribió en el mensaje
> > news:OBHWr%
> > > Desearía saber si hay alguna manera de evitar el Caso de tablas
"Padre"
> > sin
> > > "Hijos"?
> > > O en otras palabras "cabezales" sin "líneas".
> > >
> > > Gracias
> > >
> > > Nelson Rodriguez
> > >
> > > Salto - Uruguay
> > >
> > >
> >
> >
>
>







Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.688 / Virus Database: 449 - Release Date: 18/05/2004
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida