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 :

ReportPrinterDialog (QR2) : violation d'accès..


Sujet :

Bases de données Delphi

  1. #1
    Membre expérimenté
    Avatar de Harry
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2002
    Messages
    1 224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2002
    Messages : 1 224
    Points : 1 331
    Points
    1 331
    Par défaut ReportPrinterDialog (QR2) : violation d'accès..
    Bonjour,

    Chez l'un de mes clients j'ai un problème : lors de l'utilisation d'un état Quickreport avec le composant ReportPrinterDialog j'ai un message de violation d'accès, le truc c'est que le meme executable fonctionne avec les memes données et les memes états (docs) sur un autre PC en réseau, c'est donc un pb specifique à un poste : quesqui pourrait sur une becane provoquer ce genre d'erreurs, le reste du prog semble fonctionner sans pb?

    Details : en PrintReport ca donne 'Violation d'accès à l'adresse blabla dans le module 'Nomdel'exe' ecriture à l'adresse blabla' et pas d'impression.

    en PreviewReport la fenêtre de preview s'affiche, elle est grise (meme pas la page blanche).
    En bas de la preview on a 0% page 1 of 1' .
    Il n'y a pas d'erreur sur le coup mais au moment de quitter la preview : 'violation d'accès à l'adresse 00000000. Lecture de l'adresse 00000000'.

    Voila, j'espere que ca inspirera des souvenirs a quelqu'un.

    Merci, A++

  2. #2
    Membre régulier Avatar de fs999
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    99
    Détails du profil
    Informations personnelles :
    Âge : 63
    Localisation : Luxembourg

    Informations forums :
    Inscription : Avril 2004
    Messages : 99
    Points : 111
    Points
    111
    Par défaut
    Salut,

    On dirait que ton imprimante par défaut a un problème. Voici une fonction qui permet de savoir si ton imprimante est prête :
    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    function IsPrinterAvailable(Index: Integer): Boolean;
    var
      DC: THandle;
      StructCnt: DWORD;
      PrinterInfo: PPrinterInfo2;
      PrinterDefaults: TPrinterDefaults;
    begin
      with PrinterDefaults do
      begin
        DesiredAccess := PRINTER_ACCESS_USE;
        pDatatype := nil;
        pDevMode := nil;
      end;
      if Printer.Printing then
      begin
        Result := True;
        exit;
      end;
      Result := False;
      if (Printer.Handle = 0) or (Index < 0) then exit;
     
      DC := 0;
      GetMem(PrinterInfo, 0);
     
      try
        try
          {if Index = Printer.PrinterIndex then
            DC := Printer.Handle
          else}
          if not OpenPrinter(PChar(Printer.Printers[Index]), DC, @PrinterDefaults) then exit;
     
          StructCnt := 0;
          WinSpool.GetPrinter(DC, 2, nil, 0, @StructCnt);
          ReAllocMem(PrinterInfo, StructCnt);
     
          if WinSpool.GetPrinter(DC, 2, PrinterInfo, StructCnt, @StructCnt) then
            Result := PrinterInfo.Status <> PRINTER_STATUS_NOT_AVAILABLE;
        except
        end;
      finally
        FreeMem(PrinterInfo);
        if (DC <> 0) then ClosePrinter(DC);
      end;
    end;
    A+

  3. #3
    Membre expérimenté
    Avatar de Harry
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2002
    Messages
    1 224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2002
    Messages : 1 224
    Points : 1 331
    Points
    1 331
    Par défaut
    Ok, je vais tester ca, soit par ton exemple de code, soit en changeant d'imprimante par defaut.

    Merci, je vous tiens au courant.

  4. #4
    Membre expérimenté
    Avatar de Harry
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2002
    Messages
    1 224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2002
    Messages : 1 224
    Points : 1 331
    Points
    1 331
    Par défaut
    On a testé avec une autre imprimante par defaut, c'est pareil.

    Je cherche toujours

    Edit : Certains documents simples s'impriment bien, donc a priori ca ne vient pas de l'imprimante.
    Edit2 : Ca semble arriver lorsque les 'Etats' utilisent plusieurs tables liés, et pas lorsque les Etats n'utilisent qu'une seule table.

  5. #5
    Membre expérimenté
    Avatar de Harry
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2002
    Messages
    1 224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2002
    Messages : 1 224
    Points : 1 331
    Points
    1 331
    Par défaut
    J'ai fait le petit prog pour tester les imprimantes et ils repondent bien.
    De plus certains documents simples s'impriment bien.

    Par contre ca ne semble pas etre lié avec le fait qu'il y ait ds tables liés dans le doc.

  6. #6
    Membre expérimenté
    Avatar de Harry
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2002
    Messages
    1 224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2002
    Messages : 1 224
    Points : 1 331
    Points
    1 331
    Par défaut
    TROUVE : Dans le 'AfterReportLoaded' du compo 'ReportPrinterDialog' J'integre par prog une photo dans un composant existant sur le document.

    Euh bien la photo (logo du client dans ce cas) était trop gros, néanmoins la meme photo sur une autre becane passe.
    Mais c'est vrai que c'etait une grosse photo qui devait etre ecrasé dans une toute petite case, ca a du déborder une memoire quelqupart...

    On a redimmensionné la photo avec Photoshop et ca marche.

    Euh bien, je me suis fait des sueurs froides pendeant une semaine pour pas grand chose finalement.


    Merci fs999 pour ton bout de code, ce sera surement utile une autre fois.

    et A++

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

Discussions similaires

  1. "violation d'acces à l'adresse" en sortie de primi
    Par netah25 dans le forum C++Builder
    Réponses: 20
    Dernier message: 18/01/2005, 11h22
  2. [XMLDocument] Violation d'accès
    Par xant dans le forum Composants VCL
    Réponses: 8
    Dernier message: 29/09/2004, 15h39
  3. requete / violation d'accès
    Par marie253 dans le forum Bases de données
    Réponses: 4
    Dernier message: 13/08/2004, 13h29
  4. 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
  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