Lock Oracle

cs_aeled Messages postés 108 Date d'inscription mardi 25 novembre 2003 Statut Membre Dernière intervention 10 mars 2005 - 8 mars 2005 à 10:04
sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 - 8 mars 2005 à 16:58
J'aimerais savoir comment ca se passe avec les locks sur une base
Oracle. Je transcris une appli en uniface ou ils ont une macro lock qui
vérouille la table pour l'intégrité des données lors des modif. Je
voulais savoir si c'est fait quand on utilise un dataset ou bien est-ce
qu'il faut le faire et si oui comment ?

David

-----
Un jour, je saurai !

3 réponses

sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 37
8 mars 2005 à 15:16
lorsque tu charges un dataset la table oracle d'où proviennent les données n'est pas lockée.
Par contre, au moment de faire ton update, tu peux vérifier que les données que tu modifies sont bien celle qui était présente au moment de la lecture. C'est le comportement par défaut lorsque tu crées un (Oracle)DataAdapter avec l'assistant.

Séb

Sébastien FERRAND
Blog :
http://blogs.developpeur.org/sebmafate
0
cs_aeled Messages postés 108 Date d'inscription mardi 25 novembre 2003 Statut Membre Dernière intervention 10 mars 2005
8 mars 2005 à 16:46
J'utilise pas l'assistant. Y'a une propriété sur l'adapter pour lui dire de faire ca ?

David

-----
Un jour, je saurai !
0
sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 37
8 mars 2005 à 16:58
C'est un tort de ne pas utiliser l'assistant.
Assistant ne veut pas forcément dire "Neuneu Inside !", ca rend surtout service.

Il te permet de créer un DataSet typé et donc de ne pas faire de cast à tout va.
Enfin bref... tu peux ajouter une requête de mise à jour dans les propriétés de ton objet OracleDataAdapter.

Exemple de requête Select:SELECT ID_SERVICES, ID_USER_CRE, ID_CONTRAT FROM CIND_SERVICES WHERE (ID_CONTRAT :Contrat) AND (ID_SERVICES :Service)

Exemple de requête Update :
UPDATE CIND_SERVICES SET ID_USER_CRE = :user WHERE (ID_CONTRAT :Contrat) AND (ID_SERVICES :Service) AND (ID_USER_CRE = :userOrig)

Sébastien FERRAND
Blog :
http://blogs.developpeur.org/sebmafate
0
Rejoignez-nous