If you have a cascading FK in the DataSet, you should also have one in
the database.

Thanks,

Shawn Wildermuth
[EMAIL PROTECTED]

> -----Original Message-----
> From: dotnet discussion [mailto:[EMAIL PROTECTED]]
> On Behalf Of Chris Anderson
> Sent: Thursday, May 16, 2002 11:41 AM
> To: [EMAIL PROTECTED]
> Subject: Re: [DOTNET] ADO.NET multiple table updates
>
>
> > You have to do child deletes before parent deletes.
> > You have to do parent inserts before child inserts.
>
> [nods]
> Luckily in this particular case however, the parent record
> cannot be deleted, only amended If the parent is a new one, a
> default row is added to the DataTable, and the user amends
> that (hence my need to support inserts)
>
> > You can streamline that by
> >     a) Child Deletes
> >     b) All parent updates/inserts/deletes - simple
> dataadapter update
> >     c) Child Inserts, Child Updats
>
> The problem I have is that step c doesn't do anything if I
> have a PrimaryKeyConstraint on the child tables (pointing to
> the parent PK column)
>
> > The problem is further aggravated in that for example, in
> step c, you
> > could have a transactional issue that requires a roll back.
> You also
> > need to rollback the datasets - because when you do an
> update, it sets
> > all the roll flags to being updated. So what I usually do
> is copy the
> > changes (using
> > getchanges) into temporary datatables - and pass those to the
> > dataadapter - and then when the Commit succeeds, I do a
> > DataSet.AcceptChanges() on all datasets being update.
>
> heh..pretty much the workaround I described in my second post
>
> ie pass the GetChanges of the parent to the adapter
> (effectively a copy in my case), get the new PK value from
> this "temporary" version of the parent, write this to the
> original parent record, (this updates the FK fields in the
> children), update the children passing them to their
> adapters, then finally call AcceptChanges.
>
> I just think that using GetChanges so that the roll flags are
> not updated is a bit of a hack..but obviously one you've had
> to do as well :-(
>
> Merak
>
> You can read messages from the DOTNET archive, unsubscribe
> from DOTNET, or subscribe to other DevelopMentor lists at
> http://discuss.develop.com.
>

You can read messages from the DOTNET archive, unsubscribe from DOTNET, or
subscribe to other DevelopMentor lists at http://discuss.develop.com.

Reply via email to