Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Execute umgehen (https://www.delphipraxis.net/133192-execute-umgehen.html)

body2009 27. Apr 2009 17:23


Execute umgehen
 
Hallo ich habe ein Programm geschrieben was zwei datenbanken vergleicht nach diverence und mir diese daten dann in einer scrollbox wiedergibt.

Beim ersten Durchlauf funktionirt das auch ganz gut, aber beim zweiten Durchlauf springt er bei RvProject1.Execute; in except .


Delphi-Quellcode:
 RvNDRWriter1.Stream.Position := 0 ;
      RvNDRWriter1.FileName := '';
      RvProject1.Engine := nil;
      RvProject1.Close;
      RvProject1.Engine := RvNDRWriter1;  //daten werden gezogen
      RvProject1.Open;
      ShowMessage('wird Geladen');
      try
         RvProject1.Execute; // beim zweiten durchlauf springt er hier in except
         ShowMessage('ist geladen');
         RvProject1.Engine := nil;
         RvRe_Preview.Render(RvNDRWriter1.Stream); // daten werden in scrollbox
                                                   // angezeigt

      except
         on E: Exception do begin
         ShowMessage('Fehler');
         end;
      end;

end;
was kann ich machen damit er beim zweiten durchlauf das problem umgeht??

shmia 27. Apr 2009 17:30

Re: Execute umgehen
 
Du hast einen ganz blöden Fehler in deinem Sourcecode.
Und zwar verhinderst du, dass eine vernünftige Fehlermeldung angezeigt wird:
Delphi-Quellcode:
except
    on E: Exception do begin
    ShowMessage('Fehler');
    end;
end;
Es wird grundsätzlich immer nur folgende Meldung ohne Aussagekraft angezeigt:
Code:
Fehler
Lass doch einfach den ganzen try...except Block weg!!
Ausserdem können wir dir nicht sagen, was in Execute schief läuft, da wir den Sourcecode nicht kennen.

Mithrandir 27. Apr 2009 17:31

Re: Execute umgehen
 
Zitat:

Zitat von body2009
was kann ich machen damit er beim zweiten durchlauf das problem umgeht??

Das Problem beheben. ;)

body2009 28. Apr 2009 09:39

Re: Execute umgehen
 
:-D lol du bist gut aber deswegen bin ich doch hier. und Wie umgehe ich jetzt den punkt das er beim zweiten durchlauf die RvProject1.Execute; nicht ausführt ?? denn da springt er in die DBAdvED und aktualisiert das bild in der scrollbox nicht mehr.

nahpets 28. Apr 2009 10:05

Re: Execute umgehen
 
Hallo,

mach mal bitte aus
Delphi-Quellcode:
except
  on E: Exception do begin
    ShowMessage('Fehler');
  end;
end;
Delphi-Quellcode:
except
  on E: Exception do begin
    ShowMessage(e.Message);
  end;
end;
und erzähle uns dann, was Dir bei ShowMessage angezeigt wird, dann können wir eventuell unterumständen vielleicht weiterhelfen. Momentan haben wir keinerlei Informationen über den auftretenden Fehler und müssten daher in der :glaskugel: lesen. Aber die ist heute, bei dem Nebel, sehr getrübt 8)
Tschuldigung, aber die von Dir bisher gelieferten Informationen reichen einfach für eine gescheite Hilfestellung noch nicht aus.

body2009 28. Apr 2009 11:34

Re: Execute umgehen
 
Habe ich gemacht und darin steht : Zugriffsverletzung bei Adresse 0056160B in Modul'mod_0001.exe'. Lesen von Adresse 00000008

Könnt ihr damit was anfangen?

himitsu 28. Apr 2009 11:40

Re: Execute umgehen
 
Zitat:

Zitat von body2009
Lesen von Adresse 00000008

sowas kommt z.B. wenn man auf etwas zugreift (z.B. Objekt-Variable meißt via Property
oder eine Methode eines Objektes aufrufen will)
und das Objekt nicht exisitert, also die Objectvariable nil ist.

body2009 28. Apr 2009 12:20

Re: Execute umgehen
 
aha ok. Aber warum durchläuft er dann die procedure beim ersten mal komplett, und beim zweiten durchlauf springt er beim RvProject1.execute auf exception kann man das umgehen? oder was kann ich machen?

DeddyH 28. Apr 2009 12:39

Re: Execute umgehen
 
Zeig uns doch mal die Execute-Methode, am besten mit der entsprechend markierten Fehlerzeile.

body2009 28. Apr 2009 12:44

Re: Execute umgehen
 
vorher wird die datenbak geladen
und hir im code soll er die daten die gefiltert wurden in der scrollbox ausgeben

Delphi-Quellcode:
RvNDRWriter1.Stream.Position := 0 ;
      RvNDRWriter1.FileName := '';
      RvProject1.Engine := nil;
      RvProject1.Close;
      RvProject1.Engine := RvNDRWriter1;  
      RvProject1.Open;
      ShowMessage('wird Geladen');
      try
         RvProject1.Execute; // beim zweiten durchlauf springt er hier in except
         ShowMessage('ist geladen');
         RvProject1.Engine := nil;
         RvRe_Preview.Render(RvNDRWriter1.Stream); // daten werden in scrollbox
                                                   // angezeigt

      except
         on E: Exception do begin
         ShowMessage(e.Message); //Zugriffsverletzung bei Adresse 0056160B in
                                 //Modul'mod_0001.exe'.Lesen von Adresse 00000008
         end;
      end;

end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:57 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz