Sorry, it's really not that confusing
OrderHeader
->> OrderDetailSales
-> OrderDetailCost
The values in the objects are fine, the pk's are fine, the insert order appears to be fine (OrderHeader then OrderDetailSales then OrderDetailCost) so the db constraint should be a problem, but for some reason SOMETIMES it is. It's weird, I can run it once and everything gets into the database fine, I can run it again (with no code changes) and it will fail.
-Lon
On Fri, May 15, 2009 at 12:35 PM, David Avendasora <
email@hidden> wrote:
On May 15, 2009, at 3:09 PM, Lon Varscsak wrote:
This is a complete shot in the dark, but how does Sybase handle constraints within one transaction? Would the OrderHeader insert have to be committed before you can issue an INSERT into a related table?
As long as it's in the transaction it should be okay. I'm wondering if it's not really in a transaction...but in the end I end up with no rows as I would expect in an error condition.
If that's not it, what is the actual order_detlcost_ordhdr constraint? Is it a compound FK?
It's just based on order_number.
Also, I don't know your business case, but It seems odd that the OrderDetailCost entity would be related directly to the OrderHeader entity and not to the OrderDetail entity.
Technically it's not, it's really directly related to OrderDetailSale (which is inserted before the cost record as well...I just left out that detail), but I didn't setup the foreign keys (that was long before me). However, the foreign key itself has been in place for over a decade, and I have old code (Obj-c) that is fine.
This is confusing. Maybe you can give a more detailed model without leaving anything out?
I'm really wondering if this has to do with the way jdbc/jconnect deal with autocommit.
Well, it appears that there was at one time an EOF SybasePlugIn in Wonder that was created specifically to deal with PK generation issues. See:
http://osdir.com/ml/web.webobjects.woproject.cvs/2003-09/msg00166.html
It doesn't appear to be part of the Wonder source anymore, though.
Dave