Accès multi-utilisateursJe travaille sur une solution qui vivra sur un lecteur réseau, accessible par plusieurs utilisateurs de manière asynchrone. Plus précisément, j'ai plusieurs tables de « base de données » auxquelles les utilisateurs ajouteront des lignes, où les lignes contiennent ensuite des liens vers leur table de données complète soumise.
Existe-t-il un moyen intégré de gérer les autorisations d'accès aux fichiers dans une situation comme celle-ci ? Je veux éviter une situation dans laquelle un utilisateur ouvre la table "base de données" et oublie de la fermer, verrouillant ainsi tout le monde hors de l'outil. Je pourrais coder ma propre variante sur un mutex, mais je ne veux pas réinventer la roue s'il existe une solution simple et intégrée. La solution idéale serait une sorte de script JSL qui envoie une ligne de données à une table de données sans verrouiller la table de données.
Re : Accès multi-utilisateursJuste pour être clair, lorsque vous dites tables « base de données », vous parlez de tables JMP ?
Je ne connais aucune possibilité d'effectuer un verrouillage de ligne - JMP est intrinsèquement mono-utilisateur, donc je suppose qu'il n'a pas cette capacité.C'est ce que je fais:
openSharedTable= Function({filePath},{default local},
isLocked = 1;
nAttempts = 200;
delay = 0.1;
attempts = 0;
While(isLocked & attempts < nAttempts,
attempts++;
dt = open(filePath,Invisible);
value = dt << Get Table Variable("Locked File");
If (value=="",
isLocked = 0
,
Close(dt,NoSave);
Wait(delay);
);
);
return(dt);
);