J! <high five> Good to see you mate.

That certainly sounds like a good option! it is a little long winded
but not impossible, I just wonder if there is a better option, perhaps
a setting in my SQL Server that'll do it for me? I like your approach
though, its not THAT bad if that's the route I've got to go, I'd just
rather avoid a code work around if its possible y'know?

Hmmm, with these auto-incrementing columns am I able to 'edit' or
'update' the value at a later stage? I'm not am I? that will cause
problems when trying to re-rank the article anyway so perhaps your
approach is the best option, just have it pull the highest value in
the DB and stick another 1 on it?

Rob

On Mar 3, 1:26 pm, "James Allen" <[email protected]> wrote:
> Sir Rawlins!
>
> <high five>
>
> :)
>
> Your problem is an interesting one. The error is like you say is caused by
> Rank being an auto incrementer field. When saving the object, Transfer is
> using a NULL value in the INSERT statement and this of course is illegal in
> SQL server due to the field type.
>
> My suggestion is not ideal but would be to change the field to a normal
> numeric type and then handle the auto-increment functionality in an
> overridden setRank() function within the decorator.
>
> I would probably inject my ArticleService (if your using one) into the
> decorator and have a function in there called getNextRank() which would call
> a method in the gateway to get the highest rank so far from the D/B using
> normal SQL. You could then increment this and store it in the article bean.
>
> Just thinking about this, and you may be better to have this code in the
> save() method (if you are using one) in the bean.
>
> Long winded but I don't know if Transfer has a way around this - but knowing
> me there probably is one which Bob (or Mark) will probably point out
> shortly.. ;)
>
> Cheers,
> James.
>
> ---
> James Allen
> E: [email protected]
>
> -----Original Message-----
> From: [email protected] [mailto:[email protected]]
>
> On Behalf Of Sir Rawlins
> Sent: 03 March 2009 12:49
> To: transfer-dev
> Subject: [transfer-dev] Autoincredmening a non-primary key field.
>
> Morning guys,
>
> It's been a while :-) got myself a new challenge today. I've got a
> table which stores data on articles, I've got an auto-incrementing
> field on the table which denotes the articles 'rank' which I use for
> ordering them and allowing users to increase or decrease an articles
> rank but we keep it auto incrementing to avoid duplicates, however,
> this is NOT the primary key of the table.
>
> The Transfer XML for this table looks as such:
>
>                         <object name="Article" table="Article"
> decorator="Model.Article.Article">
>                                 <id name="Article_ID" type="numeric" />
>                                 <property name="Title" type="string"
> column="Title" />
>                                 <property name="ShortDescription"
> type="string"
> column="ShortDescription" />
>                                 <property name="Heading" type="string"
> column="Heading" />
>                                 <property name="SubHeading" type="string"
> column="SubHeading" />
>                                 <property name="ArticleContent"
> type="string"
> column="ArticleContent" />
>                                 <property name="DateCreated" type="date"
> column="DateCreated" />
>                                 <property name="DateModified" type="date"
> column="DateModified" />
>                                 <property name="Rank" type="numeric"
> column="Rank" />
>                                 <manytomany name="ArticleKeyword"
> table="ArticleKeywordArticle">
>                                         <link to="Article.Article"
> column="Article_ID" />
>                                         <link to="Article.ArticleKeyword"
> column="ArticleKeyword_ID" />
>                                         <collection type="array">
>                                                 <order property="Keyword"
> order="asc" />
>                                         </collection>
>                                 </manytomany>
>                         </object>
>
> Note the 'rank' field. Now, when trying to have Transfer save a new
> instance of an article I get the following spewed back at me.
>
> essage  Error Executing Database Query.
> Detail  [Macromedia][SQLServer JDBC Driver][SQLServer]Cannot insert
> explicit value for identity column in table 'Article' when
> IDENTITY_INSERT is set to OFF
>
> Can you guys offer any suggestions as to what is causing this and how
> it might be solved? Presumably this is caused by Transfer trying to
> inset a value into the auto-incrementing field? is that correct?
>
> Cheers,
>
> Rob
--~--~---------~--~----~------------~-------~--~----~
Before posting questions to the group please read:
http://groups.google.com/group/transfer-dev/web/how-to-ask-support-questions-on-transfer

You received this message because you are subscribed to the Google Groups 
"transfer-dev" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/transfer-dev?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to