Hi Tom -

        This is the multi-level parts breakout problem.  We discussed this
on the list way back when and I can't locate the solution; however, there is
one and you might already have it in your archive.

Bernie

----------------------------------------
At 09:09 AM 10/27/2002 +1100, you wrote:
>G'day,
>
>I said:
>~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>I am wanting to create a parent child relationship
>between trading entities in the same table so I can
>allow users to report on just one trading entity or
>all under multiple levels of holding companies.
>
>I have created the table TradingEntity and the PK
>col is EntityID.   I have just programmatically
>added the col ParentEntityID to the table with a
>FK on ParentEntityID to reference EntityID.
>
>When I try to make another structural change in the
>object manager (delete SYS_ROWVER) I get the error
>message [The referenced table TradingEntity does not
>have a compatible Primary Key.]
>
>Which is the bug, allowing me to programmatically
>create the FK or not allowing me to edit the table
>after it is done?
>
>I know I can do it with a RULE, just interested to
>know the "proper" way to do it in R:BASE.
>~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>But I was wrong.
>
>With this:
>
>CREATE TABLE `TradingEntity`  +
>(`EntityID` INTEGER  NOT NULL  +
>('Value for EntityID cannot be null.') ,  +
>  `Org_ID` INTEGER  NOT NULL  +
>('Value for Org_ID cannot be null.') ,  +
>  `HeaderReqs` TEXT    (70) ,  +
>  `EntityName` TEXT    (70) ,  +
>  `AddressID` INTEGER  ,  +
>  `CNRowIDTel` INTEGER  ,  +
>  `CNRowIDFax` INTEGER  ,  +
>  `CNRowIDEmail` INTEGER  ,  +
>  `CNRowIDURL` INTEGER  ,  +
>  `EntityNote` TEXT    (200) ,  +
>  `CrntAvailable` TEXT    (1) DEFAULT 'Y' NOT NULL ,  +
>  `ParentEntityID` INTEGER  ,  +
>  `SYS_ROWVER`= +
>  (IFNULL((SYS_ROWVER+1),0,(SYS_ROWVER+1))+
>) INTEGER  )
>ALTER TABLE `TradingEntity` ADD PRIMARY KEY +
>(`EntityID` ) +
>('Values for rows in TradingEntity must be unique.',+
>  'Cannot delete - values exist in another table.',+
>  'Cannot update - values exist in another table.')
>AUTONUM `EntityID` IN `TradingEntity` USING +
>4. 1. NONUM
>RULES 'Value must exist in TradingEntity ' +
>                FOR `TradingEntity` SUCCEEDS  +
>                WHERE EXISTS (SELECT EntityID FROM TradingEntity WHERE T+
>radingEntity.EntityID = TradingEntity.ParentEntity+
>ID )
>
>In the browser I cannot get the existing values
>for EntityID accepted into ParentEntityID without
>a rule violation message on exit from the last
>row in the browser.
>
>Any clues?
>
>Warmest regards,
>
>
>Tom Grimshaw
>coy:    Just For You Software
>tel:    612 9552 3311
>fax:    612 9566 2164
>mobile: 0414 675 903
>
>post:   PO Box 470  Glebe  NSW  2037  Australia
>street: 3/66 Wentworth Park Rd  Glebe  NSW  2037
>
>email:  [EMAIL PROTECTED]
>web: www.just4usoftware.com.au
>
>"... the control of impulse -- is the first principle of civilization."-- 
>Will Durant,
>Pulitzer Prize winning philosopher, writer and historian
>
>the most needed product in the world can be found at
>www.thewaytohappiness.org
>
>This email and any files transmitted with it are confidential to the 
>intended recipient and may be privileged. If you have received this email 
>inadvertently or you are not the intended recipient, you may not 
>disseminate, distribute, copy or in any way rely on it. Further, you should 
>notify the sender immediately and delete the email from your computer. 
>Whilst we have taken precautions to alert us to the presence of computer 
>viruses, we cannot guarantee that this email and any files transmitted with 
>it are free from such viruses.
>
>================================================
>TO SEE MESSAGE POSTING GUIDELINES:
>Send a plain text email to [EMAIL PROTECTED]
>In the message body, put just two words: INTRO rbase-l
>================================================
>TO UNSUBSCRIBE: send a plain text email to [EMAIL PROTECTED]
>In the message body, put just two words: UNSUBSCRIBE rbase-l
>================================================
>TO SEARCH ARCHIVES:
>http://www.mail-archive.com/rbase-l%40sonetmail.com/
>
>================================================
>TO SEE MESSAGE POSTING GUIDELINES:
>Send a plain text email to [EMAIL PROTECTED]
>In the message body, put just two words: INTRO rbase-l
>================================================
>TO UNSUBSCRIBE: send a plain text email to [EMAIL PROTECTED]
>In the message body, put just two words: UNSUBSCRIBE rbase-l
>================================================
>TO SEARCH ARCHIVES:
>http://www.mail-archive.com/rbase-l%40sonetmail.com/
>

================================================
TO SEE MESSAGE POSTING GUIDELINES:
Send a plain text email to [EMAIL PROTECTED]
In the message body, put just two words: INTRO rbase-l
================================================
TO UNSUBSCRIBE: send a plain text email to [EMAIL PROTECTED]
In the message body, put just two words: UNSUBSCRIBE rbase-l
================================================
TO SEARCH ARCHIVES:
http://www.mail-archive.com/rbase-l%40sonetmail.com/

Reply via email to