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 :

Violation d'accès pour DataSet


Sujet :

Bases de données Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Juillet 2005
    Messages
    266
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 266
    Par défaut Violation d'accès pour DataSet
    Bonjour à tous,

    Je travaille sur Delphi 7. Dans mon DataModule j'ai posé mes composants ADOQuery. Et voici le code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    DataModules.ADOQuery.ConnectionString :=HR.ConnectionString;
       DataModules.ADOQuery.Active:=false;
       DataModules.ADOQuery.Sql.Clear;
       DataModules.ADOQuery.Sql.Add('Select * from tb_table');
       DataModules.ADOQuery.Active:=true;
     
       RptrelevCpte.QuickRep1.DataSet:=DataModules.ADOQuery;
    HR.ConnectionString a la chaine de connection pour se connecter à la base de données, et cela marche très bien lorsqu'il s'agit d'une requête. C'est la dernière instruction RptrelevCpte.QuickRep1.DataSet:=DataModules.ADOQuery; qui me génère cette erreur:

    Nom : Sans_titre.jpg
Affichages : 729
Taille : 22,6 Ko

    Je vous signale RptrelevCpte a été créé de même que le composant Quick Report QuickRep1 posé.

    Merci de votre aide.

  2. #2
    Membre éclairé
    Inscrit en
    Juillet 2005
    Messages
    266
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 266
    Par défaut
    Autre précision, j'utilise Quick Report 3.5

  3. #3
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 491
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 491
    Par défaut
    salut

    j'avoue na pas travailler de cette façon mais bon

    tu as essayer de faire la jointure avant d'ouvrir ta requete ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    DataModules.ADOQuery.ConnectionString :=HR.ConnectionString;
       DataModules.ADOQuery.Active:=false;
       DataModules.ADOQuery.Sql.Clear;
       DataModules.ADOQuery.Sql.Add('Select * from tb_table');
       RptrelevCpte.QuickRep1.DataSet:=DataModules.ADOQuery; // juste avant d'acitver
       DataModules.ADOQuery.Active:=true;
       if not(RptrelevCpte.QuickRep1.DataSet.IsEmpty) Then
         RptrelevCpte.QuickRep1.Preview;

  4. #4
    Membre éclairé
    Inscrit en
    Juillet 2005
    Messages
    266
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 266
    Par défaut
    Citation Envoyé par anapurna Voir le message
    salut

    j'avoue na pas travailler de cette façon mais bon

    tu as essayer de faire la jointure avant d'ouvrir ta requete ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    DataModules.ADOQuery.ConnectionString :=HR.ConnectionString;
       DataModules.ADOQuery.Active:=false;
       DataModules.ADOQuery.Sql.Clear;
       DataModules.ADOQuery.Sql.Add('Select * from tb_table');
       RptrelevCpte.QuickRep1.DataSet:=DataModules.ADOQuery; // juste avant d'acitver
       DataModules.ADOQuery.Active:=true;
       if not(RptrelevCpte.QuickRep1.DataSet.IsEmpty) Then
         RptrelevCpte.QuickRep1.Preview;
    Merci, j'ai toujours le même message d'erreur. J'avoue que c'est ma première fois d'utiliser Quick Report 3.5
    Bref si une personne peut avoir un tutoriel pour me guider car j'ai suivi cette video:


  5. #5
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 604
    Billets dans le blog
    65
    Par défaut
    Bonjour,

    A mon avis le problème est que l'instruction est placée dans le datamodule et que, comme en général, le datamodule est créé avant la forme du Quickreport.

    Pour moi l'instruction devrait être dans le OnCreate de la "forme" ou dans le BeforePrint du QuickReport

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     uses datamoduleunit ...
     QuickRep1.DataSet:=DataModules.ADOQuery;
    le datamodule étant la première "fiche" créée au niveau du projet

  6. #6
    Membre éclairé
    Inscrit en
    Juillet 2005
    Messages
    266
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 266
    Par défaut
    Après vos remarques, j'ai mis ce bout de code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    procedure TFCompteClient.Btn_relevCpteClick(Sender: TObject);
    var ADOQuery : TADOQuery;
    begin
       ADOQuery:=TADOQuery.Create(Self);
       ADOQuery.ConnectionString :=HR.ConnectionString;
       ADOQuery.Active:=false;
       ADOQuery.SQL.Clear;
       ADOQuery.SQL.Add('select * from tb_table');
       ADOQuery.Active:=true;
     
       with QuickReport1 do
       begin
          DataSet:=ADOQuery; 
       end;
    Alors que j'ai bien installé Quick Report 3.5, j'ai ce message

    Nom : Sans_titre1.jpg
Affichages : 637
Taille : 29,2 Ko

    lors de l’exécution de cette ligne with QuickReport1 do
    begin
    DataSet:=ADOQuery;
    end;

    J'ai fait des recherches, dans certains sites les utilisateurs demandent d'avoir la version prof de Quick Report. Quelqu'un aurait une idée de la source de mes problèmes ?

    Je vous remercie.

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

Discussions similaires

  1. DLL pour postgreSQL : erreur violation d'accès
    Par valda dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 11/02/2011, 13h27
  2. requete / violation d'accès
    Par marie253 dans le forum Bases de données
    Réponses: 4
    Dernier message: 13/08/2004, 13h29
  3. Violation d'acces apres Execute
    Par SegmentationFault dans le forum Connexion aux bases de données
    Réponses: 6
    Dernier message: 10/08/2004, 16h23
  4. [CR] quel est le meilleur mode d'accès pour base Access
    Par IRAD dans le forum SAP Crystal Reports
    Réponses: 1
    Dernier message: 27/07/2004, 09h02
  5. Violation d'accès apres Close
    Par SegmentationFault dans le forum Bases de données
    Réponses: 3
    Dernier message: 05/07/2004, 16h46

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