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

Langage Delphi Discussion :

[D7] Erreur de violation d'accès


Sujet :

Langage Delphi

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    128
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 128
    Points : 73
    Points
    73
    Par défaut [D7] Erreur de violation d'accès
    Bonjour,

    J'ai une erreur de violation d'accès quand je compile mon appli et je vois pas ce que ca peut etre.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Procedure TFormProject.ReadOnlySet(ReadOnlyMode:Boolean);
    VAR Book : TBookmark;
    Begin
    Book:=ProjectModule.TableProjects.GetBookmark;  //sauve la position courante dans la grille des projets
    ProjectModule.TableProjects.Active:=False;//on dévalide la table le temps de changer son accés, de toute facon elle se dévalide lorsque l'on change le ReadOnly
    ProjectModule.TableProjects.ReadOnly:=ReadOnlyMode;//change le mode d'accés à la base de données
    ProjectModule.TableProjects.Active:=True;//réouvre la base de données
    ProjectModule.TableProjects.GotoBookmark(Book);//restaure la position courante dans la grille des projets
    ProjectModule.TableProjects.FreeBookmark(Book);//libère la mémoire utilisée par le bookmark
    L'erreur se produit sur la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ProjectModule.TableProjects.Active:=False;
    * La déclaration de TableProject dans le type TProjectModule n'est pas faite dans la catégorie 'private'

    * La procédure ReadOnlySet n'est pas private (bien que ca doit rien changé si je ne m'abuse)

    * L'instance TableProject est bien crée avant d'arriver sur cette ligne.

    Euh voila je ne voyais que ces causes là possibles pour ce type d'erreur. Si vous en connaissez d'autres elles sont les bien venus.

    Merci d'avance

    PS. Je m'excuse d'avance si le sujet n'est pas à sa place (peut etre dans Delphi Base de donnée????)

    vince

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    128
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 128
    Points : 73
    Points
    73
    Par défaut
    Re bonjour tout le monde,

    voila j'arrive pas à me dépétrait de cette erreur (violation d'accès à l'adresse XXXXXX). J'aimerais savoir s'il y a un moyen d'exploiter cette adresse pour debeger? Elle correspoànd à quoi?

    Vince

  3. #3
    Expert éminent
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Points : 7 679
    Points
    7 679
    Par défaut
    Juste un fil, rien de sur, mais j'ai remarqué qu'en de tels circonstances, l'erreur ne vient pas forcèment de la ligne qu'indique Delphi, donc, vérifie un peu ce qu'il y'a avant.
    (Désolé pour cette fausse réponse).

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    128
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 128
    Points : 73
    Points
    73
    Par défaut
    Non au contraire merci pour ta réponse... meme si dans mon cas je suis sûr que c'est bien cette ligne qui fait défaut.
    J'ai fait des tests et j'ai remarqué que si je lis la table, ou bien que je fais d'autres opérations (par ex : dataset.first) il n'y a pas d'erreur.

    Ce n'est que quand j'essaie de modifier la propriété Active de mon dataset que ca me fais une exception....

    Est ce qu'il faut des droits particuliers pour modifier cette propriété?

    Merci d'avance pour vos réponses.

    Vince

  5. #5
    Modérateur
    Avatar de tourlourou
    Homme Profil pro
    Biologiste ; Progr(amateur)
    Inscrit en
    Mars 2005
    Messages
    3 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Biologiste ; Progr(amateur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 875
    Points : 11 363
    Points
    11 363
    Billets dans le blog
    6
    Par défaut
    je ne connais pas le type TBookMark, mais ne doit-il pas être créé ? car la violation d'accès ressemble fort à l'accès à un objet pas créé, et Modjo a raison : l'erreur est souvent sur la ligne d'avant...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Book := TBookMark.Create;
    Book.Assign(ProjectModule.TableProjects.GetBookmark);
    //...
    Book.Free;

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    128
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 128
    Points : 73
    Points
    73
    Par défaut
    merci pour ta réponse mais je ne crois pas que les TBookmark nécessite d'être crée.
    La procédure qui me provoque l'erreur est appellée dans la procédure qui crée ma forme. Si je la met en commentaire tout va bien (eh eh normal).
    Mais j'ai de nouveau une erreur de violation d'accès quand je veux faire maforme.show:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    If (FormProject=NIL) Then Application.CreateForm(TFormProject, FormProject);
    Screen.Cursor:=crDefault;
    StatusBar1.SimpleText := '';
    FormProject.ShowModal;
    J'ai donc de nouveau une erreur de violation d'accès sur la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    FormProject.ShowModal;
    ...Je comprend pas ce qu'il se passe ni d'ou ca peut venir....
    Merci de vos lumières.
    vince

  7. #7
    Membre chevronné
    Avatar de Droïde Système7
    Homme Profil pro
    Inscrit en
    Septembre 2003
    Messages
    2 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 2 262
    Points : 1 928
    Points
    1 928
    Par défaut
    Bonjour,

    Ligne précédente...

    Teste pour voir en ne lasssant pas "vide" le :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    StatusBar1.SimpleText := 'X';

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    128
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 128
    Points : 73
    Points
    73
    Par défaut
    merci pour ta réponse

    Mais ca change rien... J'ai remarqué un truc marrant.
    Si je fais ca:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    ProjectModule.TableProjects.Active:=False; 
    If (FormProject=NIL) Then Application.CreateForm(TFormProject, FormProject); 
    Screen.Cursor:=crDefault; 
    StatusBar1.SimpleText := ''; 
    FormProject.ShowModal;
    Je n'ai pas d'erreur sur la première ligne (mais je l'ai toujours sur le show modal)

    et si je fais ca:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    If (FormProject=NIL) Then Application.CreateForm(TFormProject, FormProject); 
    ProjectModule.TableProjects.Active:=False; 
    Screen.Cursor:=crDefault; 
    StatusBar1.SimpleText := ''; 
    FormProject.ShowModal;
    Ca me fait une erreur sur la deuxième ligne (et toujours qur la dernière )

    Donc mon createForm fait bien quelque chose de mal mais j'arrive pas à savoir quoi.

    Voila si vous avez un éclair de génie vous etes le bien venu... (si vous en avez pas aussi )

    vince

  9. #9
    Membre du Club

    Inscrit en
    Juillet 2005
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 48
    Points : 58
    Points
    58
    Par défaut
    S'il existe des évènements dans ta fenêtre, mets des points d'arret partout même sur des évènements où tu en es sûr.

  10. #10
    Membre expérimenté

    Homme Profil pro
    Inscrit en
    Mars 2004
    Messages
    897
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2004
    Messages : 897
    Points : 1 561
    Points
    1 561
    Par défaut
    Est-ce que ta fiche FormProject est créée automatiquement dans ton projet ?

    Cordialement

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    128
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 128
    Points : 73
    Points
    73
    Par défaut
    Yahooooooooooooooooooooooooooooooo!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    T'es mon idole

    En effet l'erreur ne venait pas de la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ProjectModule.TableProjects.Active:=False;
    mais d'une procedure qui s'exécutait périodiquement... je sais pas comment on peut faire ce genre de truc mais bon au moins j'i localisé le véritable problème.....

    Merci beaucoup pour vos conseils!!!!

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

Discussions similaires

  1. Erreur de violation d'accès
    Par alvinleetya dans le forum OpenCV
    Réponses: 2
    Dernier message: 02/10/2012, 15h28
  2. Réponses: 7
    Dernier message: 10/01/2007, 09h02
  3. Réponses: 6
    Dernier message: 30/12/2006, 15h18
  4. [BSD 2006] Erreur de violation d'accès sur un ShowModal
    Par doudoustephane dans le forum C++Builder
    Réponses: 36
    Dernier message: 14/10/2006, 12h10
  5. Erreur violation d'accès
    Par James64 dans le forum Langage
    Réponses: 5
    Dernier message: 02/12/2005, 16h54

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