begin process at 2012 02 08 18:22:59
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Delphi

 > 

Base de données

 > 

Autre

 > 

acces simultanes dans une table


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

acces simultanes dans une table

lundi 2 février 2009 à 23:35:33 | acces simultanes dans une table

belaid52


Messieurs bonsoir,
J'ai une table qui contient un matricule. Cette table est utilisee et mise a jour par plusieurs personnes en meme temps. Cette rubrique que j'ai appelee Matricule est cree a chaque ajout d'enregistrement(append) dans la table qui est calcule juste en incrementant le dernier matricule enregistre.
comment empecher que deux utilisateurs simultanes creent deux matricules identiques.
exemple :
dernier enregistrement :  128 
deux utiliseurs font un Append en meme temps et auront un meme matricule 129
Comment gerer le fait qu'un utilsateur lance un Append, l'autre utilisateur soit bloquer que le premier n'a pas fait un post.
Merci 
mardi 3 février 2009 à 00:28:46 | Re : acces simultanes dans une table

Delphiprog

Administrateur CodeS-SourceS
INSERT INTO maTable(matricule)
SELECT Max(matricule) + 1 FROM maTable

C'est tout simple et ça remplace un champ autoincrémenté.

May Delphi be with you !

Pensez à cliquer sur Réponse acceptée lorsque la réponse vous convient.
mardi 3 février 2009 à 17:13:22 | Re : acces simultanes dans une table

cantador

Membre Club Administrateur CodeS-SourceS
bonsoir,

et si 10 utilisateurs cliquent en même temps ?
que se passe t-il ?

cantador
mardi 3 février 2009 à 20:51:41 | Re : acces simultanes dans une table

belaid52


Salut les amis,
je reformule ma question :
je veux verrouiller  ma table tant qu'un utilisateur a fait un append et des qu'il fait un post, la table se deverrouille.
Merci
mardi 3 février 2009 à 22:03:28 | Re : acces simultanes dans une table

cantador

Membre Club Administrateur CodeS-SourceS
Réponse acceptée !
Le mieux me semble t-il à moins que delphiprog démontre le contraire est de mettre en place un champ auto-incrémental qui sera géré directement par le serveur lui-même et ainsi même si 50 utilisateurs cliquent en même temps,
le programe s'en sortira et attribuera 50 numéros incrémentés.

et dans cette solution, nul besoin de bloquer quoi que soit...

cantador
mercredi 4 février 2009 à 20:15:36 | Re : acces simultanes dans une table

belaid52


Bonsoir,
je voudrai utiliser une fonction que j'ai trouve sur l'internet mais je ne sais vraiment la mettre en oeuvre :

function TableIsReallyLocked(MyTable: TTable): Boolean;
begin
 Result:=False;
 with MyTable do
      begin
      try
         LockTable;
      except                        
          Result:=True;
      end;
  end;
end;
A quel moment on avise les utilsateurs que cette table est verrouillee.

je suis nouveau dans Delphi

Merci
mercredi 4 février 2009 à 22:23:10 | Re : acces simultanes dans une table

cantador

Membre Club Administrateur CodeS-SourceS

ça concerne les tables paradox..
Cela permet de gérer directement la concurrence d'accès au niveau table, indépendamment du niveau d'isolement en vigueur.
Alors que le niveau d'isolement d'une transaction fixe généralement les types de verrous définis lors de l'exécution d'une requête, l'instruction LOCK TABLE permet un verrouillage plus explicite des lignes d'une table.
Attention, c'est très délicat à manipuler..
On lui préfère généralement une gestion au niveau des composants d'accès à la base.
Et puis le BDE + paradox aujourd'hui, c'est franchement à éviter.

cantador

mercredi 4 février 2009 à 22:51:23 | Re : acces simultanes dans une table

belaid52


Bonsoir,
je vais vous decrire un peu comment je procede.

j'ai mon application sur pc1. Sur le  pc2, je crois un raccourci vers l'applacation sur pc1.
l'utilisateur du pc1 et du pc2 se connectent a l'application.

Je n'ai que append, edit,  post.....Mais pour les composants d'acces aux tables....

je ne sais pas que ce que c'est?

merci

jeudi 5 février 2009 à 08:09:54 | Re : acces simultanes dans une table

cantador

Membre Club Administrateur CodeS-SourceS

oui, mais on a du mal à te suivre...
tu évoques un souci d'incrément et maintenant c'est une base avec 2 users...etc.

je ne sais pas que ce que c'est?

si tu n'en sais pas plus que ça et que tu ne connais pas non plus ton problème ?
...
dur ..dur..

???
cantador

jeudi 5 février 2009 à 13:11:06 | Re : acces simultanes dans une table

belaid52


bonjour,
Le probleme d'incrementation est resolue. j'ai fait "Reponse acceptee".

c'est suite a votre reponse concernant Lock Table et  en lisant ce que vous avez ecrit:
   "On lui préfère généralement une gestion au niveau des composants   d'accès  à    la base"
que je voulais savoir quels sont les composants qui peuvent gerer tous ces problemes.
C'est pour ce la que je vous decris un peu ma facon de faire les choses et si je suis sur la bonne voie.
merci


1 2

Cette discussion est classée dans : table, acces, append, matricule, simultanes


Répondre à ce message

Sujets en rapport avec ce message

Edit apres un append dans une boucle [ par epeichette ] Bonjour,Je souhaite effectuer une opération très simple : Mettre à jour les données d'un champ d'un enregistrement.Je lis dans une table Paradox des Aide delphi ODBC acces [ par ickx78 ] salut a tous j'ai un problemeje veux utiliser une base ACCESS par ODBC+BDE  mais apres configuration lorsque j'utilise le composant Ttable et je veux Créer une Table dans Acces par programme [ par Cobuce ] Salut,J'utilise la base des données Acces, je cherche à créer à partir du programme une table dans cette base des données.Comment le faire ?   Aidez-m relation table paradox [ par malraseek ] salut svp comment metre dans une table paradox le matricule comme une clè pour evitè les double par exemple pour ne pas avoir 2 matricule similair si enregistrer les information une fois la ligne de la table acces selectionné [ par pratrick ] Bonjour J'ai actuellement une table access je localise la ligne dont je recherche la chaine de caractère [code=pas]adotable2.Locate('commune',DBEdit3. editer une table de la base de donnee (paradox)dans unfichier [ par nonaphysique ] bonjour! je veux que ma table de la base de donnée (paradoxe)soit écrite dans un fichier texte(bloc note)avec un code source delphi merci [^^confus2] ALTER Table nomtable ADD COLUMN Nouv-col définitioncol after/first Ancien-col [ par Larbiredha ] Bonjours J'ai utilisé "Alter table add column after/first" mais pas de solution je veu insérie mes propre champ il m'ecrire ERROR de syntest avec Alt probleme delphi ==> table SQL [ par taoren03 ] J'ai une table SQL toto Avec 4 champs NOM, Dénomination, lien, et ID Donc je dois faire un programme sous Delphi qui regarde pour chaque ligne si le a/s IBEvents d'InterBase [ par Ben ali ] Bonjour, je souhaite utiliser le composant TIBEvents sous Delphi (avec Base de données Interbase) et je n'arrive pas à l'implémenter dans mon applicat manques des valeur dans TDBLookupComboBox [ par pratrick ] Bonjour j'ai utilisé un DBLookupComboBox1, qui va chercher dans une table, la liste des villes (champs de la table access commune). keyfield commune l


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,343 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales