ATOUTFOX
COMMUNAUTÉ FRANCOPHONE DES PROFESSIONNELS FOXPRO
Visual FoxPro : le développement durable

Forum AtoutFox : Re: 5 utilisateurs sur un formulaire   

Sujet

rss Flux RSS des derniers messages

Vous devez vous identifier pour pouvoir poser une question ou répondre.

mar. 09 juin 2015, 22h15
eddymaue
atoutfox.public.association

Re: 5 utilisateurs sur un formulaire

le code qui suit :


clear
* Clean up previous runs
close database all
on error ? mess()
rollback
rollback
drop table Foo
on error

* Set up a database and tables
create database Boo
create table Foo (iFid1 i primary key)
use Foo shared
* add and backout some records
lTrn()

* Same thing on a free table
create table Bar free (iFid1 i)
lTrn()
return


function lTrn()
set multilocks on
CursorSetProp"Buffering", 5 )
begin transaction
insert into Foo values (1)
append blank
[alias(), reccount():]alias(), reccount()
replace iFid1 with 2
[alias(), reccount():]alias(), reccount()
rollback
[alias(), reccount():]alias(), reccount()
tablerevert()
[alias(), reccount():]alias(), reccount()
?
return



eddymaue a utilisé son clavier pour écrire :
> merci Gilles
>
> comme d'habitude je prends vos conseils et j'aime bien trouver de l'info
> supplémentaire
>
> avec google j'ai cherché l'info suivante "how to use buffering with vfp" et
> j'y ai trouvé de la belle information qui corobore avec ce que tu m'écris...
> et en plus de beaux exemples ...
>
> ça m'a permit de me ressourcer avec
>
> Begin Transaction - Rollback - End Transaction
> TableUpdate(). TableRevert() et OldVal()
> les différents modes de bufferings
>
> voilà un exemple : http://fox.wikis.com/wc.dll?Wiki~TransactionsAndBuffering
>
> et les contributeurs de cet article : Carl Karsten, Nancy Folsom, Steven
> Black, Joel Leach
>
> bref ce ne sont pas des novices
>
> il y a pourtant deux grosses bévues dans ce code. Bon pas malignes en soit
> mais tout de même une relecture et un p'tit test aurait permit de les éviter
>
> testez vous même
>
> bon je poursuis sur d'autres articles histoire de me pondre un beau p'tit
> code en fin de semaine
>
> bonne soirée
>
> a+ Eddy
>
> GLS a utilisé son clavier pour écrire :
>> Bonjour Eddy,
>>
>> le buffering n'empêchera pas la manipulation des datas de façon simultanée
>> par 2 utilisateurs..
>>
>> Dans ce cas de figure il faut:
>> - Soit Bloquer l'enregistrement en lecture et écriture par le premier
>> utilisateur et avertir le second utilisateur que cet enregistrement est
>> déjà en cours de modification par un tiers --> cela nécessite d'avoir un
>> accès directe à la table - Soit prévoir un champ dans la table dans lequel
>> on stocke temporairement que cet enregistrement est en traitement. Pour
>> chaque utilisateur on laisse la possibilité de modifications que si ce
>> champ le permet. En fin de modification on débloque ce champ - Si accès par
>> curseuradapteur, curseur ou vue ou table bufferisée, il faut avant le
>> tableupdate vérifier que la valeur courante CURVAL de chaque colonne de la
>> table parente correspond à la OLDVAL du curseur, vue etc.. ou utiliser
>> GETFLDSTATE en fonction du contexte. Il faudra prévenir l'utilisateur que
>> les données ont été modifiées et traiter la réponse en conséquence.
>>
>> Cordialement
>> Gilles

--
Merci de partager avec moi votre immense savoir que je me ferai plaisir
d'absorber...
il va de soi que je vais vous en laisser un peu
Politesse et savoir vivre oblige ;0)
Permalink : http://www.atoutfox.org/nntp.asp?ID=0000016452
20 087 messages dans le forum • Liste complète des messages

Publicité

Les pubs en cours :


www.atoutfox.org - Site de la Communauté Francophone des Professionnels FoxPro - v3.4.0 - © 2004-2024.
Cette page est générée par un composant COM+ développé en Visual FoxPro 9.0-SP2-HF3