AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Was kompiliert Delphi 10.3.3 da???

Ein Thema von harfes · begonnen am 24. Nov 2019 · letzter Beitrag vom 27. Nov 2019
Antwort Antwort
Seite 1 von 6  1 23     Letzte »    
harfes

Registriert seit: 25. Jun 2006
Ort: Rand der Scheibe
180 Beiträge
 
Delphi 11 Alexandria
 
#1

Was kompiliert Delphi 10.3.3 da???

  Alt 24. Nov 2019, 12:23
Ich habe eine procedure in einem Programm, die unter 10.2 völlig problemlos läuft (es wird beim Klick auf einen Button aus einem DBgrid ein DBKey ausgelesen und diesem Eintrag im Grid dann eine andere Farbe gegeben und das in der zugehörigen DB (Firebird mit IBDAC) gesichert):

if (DBPlanner1.Items.Selected.DBKey<>'') then
begin
laufendenr:=DBPlanner1.Items.Selected.DBKey;
with DM1.DataModule1.IBPlanungSQL do
begin
Close;
SQL.Clear;
SQL.Add('UPDATE PLANUNG SET ');
SQL.Add('ITEMCOLOR = :ITEMCOLOR, ERLEDIGT = :ERLEDIGT ');
SQL.Add('WHERE ITEMKEY = :OLD_ITEMKEY');
Params[0].Value:=7;
Params[1].Value:='T';
Params[2].Value:=laufendenr;
ExecQuery;
Close;
end;
DM1.DataModule1.IBTransaction1.CommitRetaining;
DBPlanner1.Refresh;
end
else
begin
ShowMessage('Bitte einen Termin markieren!');
end;

Wenn ich mein Programm nun unter 10.3.3 kompiliere (ohne Fehler), starte (völlig problemlos) und diesen Button betätige, wird das Programm geschlosssen! Die Datenänderung wird aber vorher noch in der DB gesichert! Ich habe auch schon das DBPlanner1.Refresh ausgeschaltet - es schliesst sich trotzdem.

Die genutzten Komponenten sind die gleichen wie in 10.2 und aktuell (IBDAC und TMS DBAdvGrid). Es gibt keine Fehlermeldung...wie komme ich da an das Problem heran???


Hartmut
Hartmut
  Mit Zitat antworten Zitat
zeras

Registriert seit: 11. Mär 2007
Ort: Saalkreis
1.618 Beiträge
 
Delphi 12 Athens
 
#2

AW: Was kompiliert Delphi 10.3.3 da???

  Alt 24. Nov 2019, 12:32
Nimm doch bitte mal die With Anweisung weg und schreibe alle Objekte komplett aus.
Möglicherweise bezieht sich das Close; auf dein Formular und nicht auf deine DB Verbindung.

Und benutze auch bitte die Delphi Tags. Danke.
Matthias
Es ist nie falsch das Richtige zu tun!
- Mark Twain
  Mit Zitat antworten Zitat
Daniel
(Co-Admin)

Registriert seit: 30. Mai 2002
Ort: Hamburg
13.919 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: Was kompiliert Delphi 10.3.3 da???

  Alt 24. Nov 2019, 12:44
Du kannst einen Breakpoint setzen und dann die paar Zeilen durchlaufen und so schauen, welche Zeile für das Programmende verantwortlich ist.
Und ja, das "Close" ist ein heißer Kandidat.
Daniel R. Wolf
mit Grüßen aus Hamburg
  Mit Zitat antworten Zitat
harfes

Registriert seit: 25. Jun 2006
Ort: Rand der Scheibe
180 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Was kompiliert Delphi 10.3.3 da???

  Alt 24. Nov 2019, 13:37
And the winner is: CLOSE !!!

ABER: warum funktioniert das in 10.2 und warum schliesst sich das Programm nicht schon beim ersten Close? Noch was: wenn ich hinter DM1.DataModule1.IBPlanungSQL den Punkt setze, um die Möglichkeiten anzuzeigen, dann gibt es gar kein Close!!! Warum gibt das keinen Compilerfehler???

Sorry, aber nachdem 10.3.1 und 10.3.2 schon nicht zum produktiven Arbeiten geeignet waren, sehe ich aktuell auch bei 10.3.3 noch keine Veranlassung zum Jubeln! Ja, es hat sich vieles verbessert - aber irgendwie macht mir so ein (nicht angezeigter) Fehler doch Sorgen...

Hartmut
Hartmut
  Mit Zitat antworten Zitat
Daniel
(Co-Admin)

Registriert seit: 30. Mai 2002
Ort: Hamburg
13.919 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: Was kompiliert Delphi 10.3.3 da???

  Alt 24. Nov 2019, 13:40
Fehler ist hier vielleicht der falsche Begriff. Bei einer der von Dir genutzten Klassen sich sich offenbar eine Methode ".Close" in der Sichtbarkeit verschoben. Bei Dir äußert sich das eben sehr drastisch - ist aber exakt das Paradebeispiel, mit dem vor der Verwendung von "with" gewarnt wird.
Wenn Du das Ganze ohne "with" voll ausprogrammierst, wird Dein Code tadellos laufen.
Daniel R. Wolf
mit Grüßen aus Hamburg
  Mit Zitat antworten Zitat
harfes

Registriert seit: 25. Jun 2006
Ort: Rand der Scheibe
180 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Was kompiliert Delphi 10.3.3 da???

  Alt 24. Nov 2019, 13:55
Ja, da hast Du recht: durch das ausprogrammieren habe ich den "Fehler" ja auch gefunden bzw eure Anmerkung verifiziert. Im nachhinein ist es ja auch merkwürdig, dass der Compiler von 10.2 auch nicht meckert - das close aber anscheinend stillschweigend ignoriert, so dass der Code funktioniert.

Ich werde morgen mal ein grösseres Projekt mit der 10.3.3 testen...

Hartmut
Hartmut
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.009 Beiträge
 
Delphi 12 Athens
 
#7

AW: Was kompiliert Delphi 10.3.3 da???

  Alt 24. Nov 2019, 13:57
Was ist denn DM1.DataModule1.IBPlanungSQL für ein Typ?
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.349 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: Was kompiliert Delphi 10.3.3 da???

  Alt 24. Nov 2019, 13:59
Sei froh, dass der Fehler so offen sichtbar aufgefallen ist. Mit with handelt man sich oft Fehler ein, die man nur schwer überhaupt eingrenzen und finden kann, wenn sie bei einem Nutzer auffallen.

Außerdem ist es einer der Hauptgründe für Probleme bei Updates auf eine neue Delphiversion.

Und debuggen lässt sich solch ein Code ja auch kaum, weil der Debugger mit with nicht arbeiten kann.

Dazu kommt noch die schlechte Lesbarkeit, weil du nie siehst was wozu gehört (in diesem Fall Close). Und weil du auch kicht siehst, ob deine gewünschte Zuordnung mit der des Compilers übereinstimmt...

Wer bei uns Code mit with eincheckt, wird virtuell gesteinigt. ��

Im nachhinein ist es ja auch merkwürdig, dass der Compiler von 10.2 auch nicht meckert - das close aber anscheinend stillschweigend ignoriert, so dass der Code funktioniert.
In 10.2 gab es in dem Objekt im with offenbar eine entsprechende Methode, die vermutlich die Verbindung geschlossen hat.
Das ist ja genau das Tückische, wenn man mit with nicht explizit schreibt wozu etwas gehören soll. Dann muss der Compiler nach seinen Regeln dies ermitteln.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.009 Beiträge
 
Delphi 12 Athens
 
#9

AW: Was kompiliert Delphi 10.3.3 da???

  Alt 24. Nov 2019, 14:00
Im nachhinein ist es ja auch merkwürdig, dass der Compiler von 10.2 auch nicht meckert - das close aber anscheinend stillschweigend ignoriert, so dass der Code funktioniert.
Hast du eventuell bei 10.3.3 eine neue Version der Komponente installiert? Vielleicht war vorher ein Close vorhanden.

ABER: warum funktioniert das in 10.2 und warum schliesst sich das Programm nicht schon beim ersten Close?
Weil das Close nur eine CM_RELEASE Message in die Queue stellt.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
zeras

Registriert seit: 11. Mär 2007
Ort: Saalkreis
1.618 Beiträge
 
Delphi 12 Athens
 
#10

AW: Was kompiliert Delphi 10.3.3 da???

  Alt 24. Nov 2019, 14:15

Sorry, aber nachdem 10.3.1 und 10.3.2 schon nicht zum produktiven Arbeiten geeignet waren, sehe ich aktuell auch bei 10.3.3 noch keine Veranlassung zum Jubeln! Ja, es hat sich vieles verbessert - aber irgendwie macht mir so ein (nicht angezeigter) Fehler doch Sorgen...

Hartmut
Ist denn 10.3.1 und 10.3.2 so schlecht?
Ich habe ein größeres Projekt immer wieder auf die aktuelle Version hochgezogen und konnte keine Probleme feststellen.
Natürlich könnte alles viel besser sein, aber wer hat schon ein Projekt, was man nicht verbessern könnte?
Matthias
Es ist nie falsch das Richtige zu tun!
- Mark Twain
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 6  1 23     Letzte »    


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:31 Uhr.
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