Hey guys,

I haven't been following this chain of conversation, but I think you're
saying that it's an error if you call load and nothing is loaded.

First off, I have no plans to change how this behaves for reactor 1.  I
haven't had issues with it.  I actually think I had reasons for doing it
this way, though I can't remember them at the moment.  (Gawd I'm tired).

That said, try this:

Create a record.  
Set the PK value(s) for it and call load()
-or-
Call load(field=value,field2=value2,etc...)

Now for a record that DID exist isDirty() should return false.  For a record
that did NOT exist this should return true.

Why?  Because when you load a record from the DB the record is unmodified
from its last persisted state.  

When you modify a record after creating the record or loading it, it is
dirty until saved, loaded or deleted.  Thus, if a load fails the record is
still dirty from the changes you made to it.

This is how I plan to keep it for release.

Doug



-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf
Of Tom Chiverton
Sent: Wednesday, May 31, 2006 5:27 AM
To: [email protected]
Subject: [Reactor For CF] Why no exists() method for objects with
auto_increment PK ?

On Wednesday 31 May 2006 09:57, Tom Chiverton wrote:
> Both tables have a PK defined, it's a plain varchar2 in the case that
works
> and an int(10) unsigned in the other. The non-working case's column is
also
> auto_increment - could this be confusing things ?

Yup - the XSLT doesn't make an exists() method if there are any
auto_increment 
columns.
I've changed the test (remove 2nd clause) so that it creates exists() if
there 
are PK defined, and all seems well.

I *think* it was done this way because of the way auto_increment objects are

created ? Anyway, I've left the test in save() alone, so it still uses 
IsNumeric and val() to decide to update() or create().

This means you can say:
<cfset var toObj=ReactorGatewayWay.getFactory().createTo("file")>
<cfset var boolExists=false>
<cfset toObj.file_id=arguments.objId>
<cfset 
boolExists=ReactorGatewayWay.getFactory().createDao("file").exists(toObj)>
Which doesn't seem as nice as maybe something like:
<cfset var recObj=ReactorGatewayWay.getFactory().createRecord("file")>
<cfset boolExists=recObj.exists(file_id=arguments.objId)
which would be just another small tweak in the xsl/record.project.xsl file.

What do people think ?
-- 
Tom Chiverton

****************************************************

This email is sent for and on behalf of Halliwells LLP.

Halliwells LLP is a limited liability partnership registered in England and
Wales under registered number OC307980 whose registered office address is at
St James's Court Brown Street Manchester M2 2JF.  A list of members is
available for inspection at the registered office. Any reference to a
partner in relation to Halliwells LLP means a member of Halliwells LLP.
Regulated by the Law Society.

CONFIDENTIALITY

This email is intended only for the use of the addressee named above and may
be confidential or legally privileged.  If you are not the addressee you
must not read it and must not use any information contained in nor copy it
nor inform any person other than Halliwells LLP or the addressee of its
existence or contents.  If you have received this email in error please
delete it and notify Halliwells LLP IT Department on 0870 365 8008.

For more information about Halliwells LLP visit www.halliwells.com.

We are pleased to announce that Halliwells LLP has been voted AIM Lawyer of
the Year at the 2005 Growth Company Awards



 

-- Reactor for ColdFusion Mailing List -- [email protected]
-- Archives at http://www.mail-archive.com/reactor%40doughughes.net/





 

-- Reactor for ColdFusion Mailing List -- [email protected]
-- Archives at http://www.mail-archive.com/reactor%40doughughes.net/



Reply via email to