Dear Andrew,
I think you are wrong. Remember that the CALC expression must return TRUE or FALSE which will not be the case with A&2, A&4 ...
I guess my scheme is correct. Everything works except this problem with this spiral2mgr user that I don't understand (see the table below from my previous mail). We will try to overcome it in a way or another ... unless somebody has another idea about it !!!
J.F. Gournay
CEA Saclay
IRFU/SIS
-----Message d'origine-----
De : Andrew Johnson [mailto:[email protected]]
Envoyé : mercredi 9 septembre 2009 16:56
À : [email protected]
Cc : GOURNAY Jean-Francois
Objet : Re: Access security problem
On Wednesday 09 September 2009 07:34:52 GOURNAY Jean-Francois wrote:
I did more systematic tests and I have this strange situation:
ASGVAL UAG spiral2 spiral2mgr gournay
1 tous W W W OK
2 develop - - (should be W) - WRONG
4 physique W - - OK
8 gournay - W (should be -) W WRONG
W : database WRITE access
- : no write access
I modified the CALC expressions accordingly to Martin suggestion :
CALC("A&1") instead of CALC("A&1=1"). But I don't think I have to write
CALC (A>0&&A<2) as my A value comes from a longout record.
You're right there, but for historical reasons the relative precedence of
the ">>" and "=" operators are different in C and CALC, so you do need to
change your expressions:
CALC("A&1=1")
As Marty suggested "A&1" is sufficient here
CALC("A>>1=1")
CALC actually evaluates this as "A>>(1=1)" which is not what you mean. You
could use "(A>>1)=1" but I would suggest "A&2" here instead.
CALC("A>>2=1")
"A&4"
CALC("A>>3=1")
"A&8"
Using fewer operators will also parse and execute faster.
This message sent yesterday didn't show up.
That's because you actually sent it to tech-talk-bounces@aps., not to
tech-talk@aps., and I didn't get a chance to forward it manually before you
re-sent it.
HTH,
- Andrew