Dennis, Thank you for your help. A couple of notes for this. These rows are locked during a process where it is MULTI OFF and only one user logged in. So because of this I can either SET RULES OFF or DROP my particular rule to do the update. This will also work because I am not running STATIC DB on this database.
However I do on another database so I will keep your suggestions in my goody bag. Have a good weekend. Jan -----Original Message----- From: Dennis McGrath <[email protected]> To: [email protected] (RBASE-L Mailing List) Date: Fri, 6 Mar 2009 14:07:26 -0600 Subject: [RBASE-L] - RE: Locking a row OOPS I misspoke. StaticDB will not prevent you from turning rules off and on. What it will do is prevent you from dropping/defining rules. So instead of dropping and recreating the rule(s) just SET RULES OFF, update, SET RULES ON. Make sure to have a DELETE rule too so records flagged cannot be deleted. I guess I preferred my method so I could turn off just the one rule and have my other rules still protect me from making silly mistakes. Dennis McGrath From: [email protected] [mailto:[email protected]] On Behalf Of jan johansen Sent: Friday, March 06, 2009 1:14 PM To: RBASE-L Mailing List Subject: [RBASE-L] - RE: Locking a row Dennis, Thanks for checking. I was pulling my hair out because I couldn't update the row to lock it. I think another thing I could try is to 1. create the rule on the table 2. Update the columns that need updating 3. drop the rule 4. update the rule column 5. reapply the rule R:Base is so fast that this may not even be noticible. On a weekly basis this would only be less than 100 rows to be updated. Jan -----Original Message----- From: Dennis McGrath <[email protected]> To: [email protected] (RBASE-L Mailing List) Date: Fri, 6 Mar 2009 09:27:05 -0600 Subject: [RBASE-L] - RE: Locking a row Use (CVAL(‘NAME’)) in the rule From: [email protected] [mailto:[email protected]] On Behalf Of Dennis McGrath Sent: Friday, March 06, 2009 9:08 AM To: RBASE-L Mailing List Subject: [RBASE-L] - RE: Locking a row I just tried it myself, and apparently the check cannot be against the same table. I ran into this myself some time ago but did not remember this limitation. What I eventually did was make sure my table had a primary key, and created a control table with a foreign key to this. I made a rule that editing succeed if the foreign key did not exist. When I want to lock a particular record, I just insert its key in the control table. I included in the rule that if NAME equals a special value the records are also editable. This is actually pretty elegant because you can reopen a record by deleting its companion in the control table or by setting NAME to the correct value. Dennis McGrath From: [email protected] [mailto: [email protected]] On Behalf Of jan johansen Sent: Thursday, March 05, 2009 5:43 PM To: RBASE-L Mailing List Subject: [RBASE-L] - RE: Locking a row Dennis, Actually I spoke to soon. I'm having a dickens of a time to get this rule correct. Any suggestions appreciated. Jan -----Original Message----- From: Dennis McGrath <[email protected]> To: [email protected] (RBASE-L Mailing List) Date: Thu, 5 Mar 2009 14:55:16 -0600 Subject: [RBASE-L] - RE: Locking a row Add a column to the table i.e. MyTableFlag INT default 0 Create a rule that only allows the row to be updated if this column = 0 When your routine has completed for a row, it changed the column to 1 Dennis McGrath From: [email protected] [mailto: [email protected]] On Behalf Of jan johansen Sent: Thursday, March 05, 2009 2:47 PM To: RBASE-L Mailing List Subject: [RBASE-L] - Locking a row Group, I need to think up a method to not allow ANY modification to a row after a certain routine has been completed. I know how to limit access to it from a form but might there be a way to disable edit on a row? A row trigger maybe? Jan

