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 

Reply via email to