Re: EOF inserts PK automatically
Re: EOF inserts PK automatically
- Subject: Re: EOF inserts PK automatically
- From: "Sako!" <email@hidden>
- Date: Mon, 22 Nov 2004 10:49:52 +0100
hi,
here is a suggestion:
use EOF technique to create pk. for me this mean useing EO_PK_Table.
use trigger which updates the EO_PK_Table automatically.
world is fine.
this solution comes from another guys in this newsgroup. and i believe its
the best.
thank you all for answers.
Sako.
----- Original Message -----
From: "Ruenagel, Frank" <email@hidden>
To: "'Chuck Hill'" <email@hidden>
Cc: <email@hidden>
Sent: Monday, November 22, 2004 10:00 AM
Subject: Re: EOF inserts PK automatically
> Hi Chuck,
>
> I really love your contributions. They have often helped me.
> But in this case IMHO it *is* possible to get WO running with
> identity columns. True is that you cannot use the standard
> mechanisms for insert (and I guess you mean that).
>
> In case of insert into a table with a identity-column EOF has to be
> informed about the pk which is not created by itself. EOF has to
> be forced to stay away from any insert.
> EOUtilties.ObjectForPrimaryKey works fine with PKs EOF has not
> seen before, because he makes a database roundtrip in this case and
> creates the object for you:
>
> 1. You want to insert an new record
> 2. Execute a stored procecure which inserts a new record and
> gives back its primary key. I use a marker in a special column
> to find the newly created record after insert.
> 3. Create the EO with EOUtilities.objectWithPrimaryKeyValue
>
> Dear Chuck, are there any reasons why this should not work?
>
> Best regards
> Frank
>
> >
> > Perhaps it is worth wading into this one more time. Using database
> > generated unique numbers (a.k.a. sequences) is not a problem. As
> > Benjamin points out below, it is just a matter of some code in the
> > plugin or even in your app as a delegate method to one of
> > the EOAccess
> > classed (I forget which off the top of my head and am too
> > lazy to look
> > it up).
> >
> > Another way that databases generate the primary key is what is often
> > referred to as an identity column. The values in this column are
> > filled in by the database when the row is inserted. The method of
> > primary key generation can NOT be used with WO, or any other
> > environment that does not use some proprietary database
> > access method.
> > If you think about it you will quickly see why it won't work.
> > You have
> > some data, but no primary key. You insert it, and the PK is
> > created by
> > the database and added to the data. But _you_ are never told
> > what the
> > PK is. SQL INSERT only returns a success or failure code, not a copy
> > of the inserted data. So now you have the data, but not the primary
> > key (which you have no way of knowing) and the database has the same
> > data _and_ the primary key. Now, how are you going to update that
> > exact row if you don't know the PK? You could the row where all the
> > other values are the same, but there is no guarantee that
> > this defines
> > a unique row. In many, many cases it does not define a
> > unique row, it
> > defines a set of rows. How are you going to know which one
> > the the one
> > you just inserted? In a nutshell, you can't.
> >
> > Your only hope for using this with WO is to:
> > 1. Somehow force it to not generate the PK and use null as the insert
> > value. If the database takes 0 as null, then this is easy
> > 2. After insertion _immediately_ tell the ec to forget the
> > object (not
> > invalidate, forget).
> > 3. The user will then have to somehow fetch some data that includes
> > this new object.
> >
> > Me, I'd stay far away from that.
> >
> > Chuck
> >
> >
> > On Nov 19, 2004, at 10:58 AM, Benjamin J Doherty wrote:
> >
> > > On Nov 19, 2004, at 3:33 AM, Sako! wrote:
> > >
> > >> if you read my first or second post, you will mention i use MS-SQL.
> > >> and tipically Apple talks about all the world ECCEPT MS-SQL.
> > >> "Apple hates Microsoft" why do i wonder?
> > >>
> > >> Mention this sentence in the site:
> > >> " It doesn't work if the database includes rows that are
> > inserted by
> > >> non-Enterprise Objects applications."
> > >> so what the hell do i have as a solution then? non.
> > >> this sentence tells me i have to forget the PK feature in EOF.
> > >> Ok fine. my first question was and still: how can i force
> > EOF to stop
> > >> trying to use this week pk feature(s)?
> > >>
> > >
> > > I don't know ANYTHING about MS-SQL, but I assume that like most
> > > databases it has some support for sequences. If you want
> > to use these
> > > instead of that (agreed) weak EO_PK_TABLE, just subclass the MS-SQL
> > > adapter, rework the code from the PostgresqlPlugIn from
> > Project Wonder
> > > (which uses sequences to generate primary keys), and voilĂ sommes
> > > nous.
> > >
> > > But I wasn't following the whole discussion, so I admit I
> > may not be
> > > on the nose here.
> > >
> > > Benjamin J Doherty
> > > sole proprietor
> > > !&# Group
> > > www.bangpound.org
> > > +1-773-934-4236
> > --
> > Practical WebObjects - a book for intermediate WebObjects developers
> > who want to increase their overall knowledge of WebObjects, or those
> > who are trying to solve specific application development problems.
> > http://www.global-village.net/products/practical_webobjects
> >
> >
> >
> > _______________________________________________
> > Do not post admin requests to the list. They will be ignored.
> > Webobjects-dev mailing list (email@hidden)
> > Help/Unsubscribe/Update your Subscription:
> email@hidden
>
> This email sent to email@hidden
> _______________________________________________
> Do not post admin requests to the list. They will be ignored.
> Webobjects-dev mailing list (email@hidden)
> Help/Unsubscribe/Update your Subscription:
>
>
> This email sent to email@hidden
>
>
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden