IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bases de données Delphi Discussion :

[Access] Accès concurrentiels


Sujet :

Bases de données Delphi

  1. #1
    Membre expert

    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Janvier 2004
    Messages
    2 123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Responsable de service informatique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 123
    Points : 3 256
    Points
    3 256
    Par défaut [Access] Accès concurrentiels
    Salut,

    Je réalise actuellement un logiciel multiposte utilisant (ADO) une base Access commune.

    Cette Base de donnée est verrouillée en modification.

    Arrivant actuellement vers la fin du développement, je me pose plusieurs questions.

    1) Quel sont les messages d'erreurs (OleException) lorsque 2 personnes modifient un enregistrement ou lorsque les tables sont vides
    (car il faut que ces messages soient traités différemment) ?

    2) Quel est le meilleur moyen de stocker le chemin d'une base de donnée pour du multiposte (Fichier INI, registre windows, ...)

    merci
    CV :
    - LinkedIn
    - Viadeo

  2. #2
    Membre chevronné
    Avatar de Bidouille
    Inscrit en
    Mars 2003
    Messages
    1 275
    Détails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 1 275
    Points : 1 992
    Points
    1 992
    Par défaut Re: [Access] Accès concurrentiels
    Citation Envoyé par yobenzen
    1) Quel sont les messages d'erreurs (OleException) lorsque 2 personnes modifient un enregistrement ou lorsque les tables sont vides
    C'est le dernier qui modifie qui a le dernier mot. Si tu fais un UPDATE sur un enregistrement inexistant, la requête échoue.

    Citation Envoyé par yobenzen
    2) Quel est le meilleur moyen de stocker le chemin d'une base de donnée pour du multiposte (Fichier INI, registre windows, ...)
    J'utilise un .ini et je n'aime pas la BDR qui est une exclusivité Windows.
    Rédacteur PHP / Delphi ADO / Novell / OpenOffice.org

    Inutile de m'envoyer vos questions par MP, je ne réponds que par le forum.

  3. #3
    Membre expert

    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Janvier 2004
    Messages
    2 123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Responsable de service informatique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 123
    Points : 3 256
    Points
    3 256
    Par défaut
    merci pour tes réponses.

    C'est le dernier qui modifie qui a le dernier mot
    Alors il y a risque de confusion au niveau des données ? Je pensais que si l'enregistrement était en cours de modification, alors la 2eme personne se verrait refuser l'accès...

    Depuis que j'ai vidé les enregistrements des tables de ma bases de donnée, j'ai une exception à chaque Select que je fais : EOleException : le paramètre ClientID n'a pas de valeur par défault.

    Et donc je souhaiterai traiter les exceptions de base de donnée selon la situation :
    la connection a la base ne fonctionne pas -> sortie du programme.
    la table est vide -> continuer car pas encore enregistré les donné (notemment lorsque nouvel acquéreur du logiciel)
    etc....

    Existe-t-il un récpitulatif des différentes exceptions à gérer pour Access sous ADO ?
    CV :
    - LinkedIn
    - Viadeo

  4. #4
    Membre expert

    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Janvier 2004
    Messages
    2 123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Responsable de service informatique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 123
    Points : 3 256
    Points
    3 256
    Par défaut
    J'ai récupére les code d'erreur fourni par JET4 mais impossible de les utiliser dans delphi.

    Par exemple l'exception le paramètre ClientID n'a pas de valeur par défault correspond au code 3747. Cependant Delphi me renvoie un code -2147217904.

    En tout cas j'ai trouvé la liste des erreurs Jet4, si quelqu'un en a besoin, faites moi signe.

    [Edit]
    Lorsque la base n'est pas présente(3024) ou en mode lecture seule(exclusif :3051), Delphi renvoie -2147467259.
    Il doit y avoir une relation entre le code de delphi et celui d'access...
    [/Edit]


    merci
    CV :
    - LinkedIn
    - Viadeo

  5. #5
    Membre expert

    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Janvier 2004
    Messages
    2 123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Responsable de service informatique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 123
    Points : 3 256
    Points
    3 256
    Par défaut
    Salut,

    J'ai enfin trouvé le moyen de récupérer le code d'erreur fourni par MS-JET (ACCESS2000) sous ADO.

    Il est nécessaire de mettre un TADOConnection en amont du TADOQuery
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    Var
      sMaRequete : string;
    ....
    ....
    try
      TADOConnection1.Connected := True;
      TADOQuery1.SQL.Clear;
      TADOQuery1.SQL.Add(sMaRequete);
     
      TADOQuery1.Open;
    ....
    Except
      On Exception do
        if (TADOConnection1.Errors[0].SQLState = '3747') then
            MessageDlg('Table vide ...',mtInformation,mbOKCancel,0):
    End;
    J'espère que cela pourra éviter de longue heures de recherche à d'autres.
    A bientot
    Ben
    CV :
    - LinkedIn
    - Viadeo

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Toutes versions] Application Access et reporting Excel (Accès concurrentiel)
    Par Soni03 dans le forum Access
    Réponses: 6
    Dernier message: 17/01/2013, 08h42
  2. accès concurrentiel access
    Par freerider74 dans le forum C#
    Réponses: 2
    Dernier message: 26/05/2010, 11h13
  3. Accès concurrentiel BDD ACCESS sous BUILDER C++
    Par sfeltan dans le forum C++Builder
    Réponses: 3
    Dernier message: 05/04/2007, 12h16
  4. accès concurrentiel sous access
    Par louroulou dans le forum Access
    Réponses: 1
    Dernier message: 17/06/2006, 17h42
  5. [VB.NET] Accès concurrentiel aux fichiers
    Par david71 dans le forum Windows Forms
    Réponses: 6
    Dernier message: 13/12/2004, 11h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo