Delete all in PPO

Zugriff, Engines, Konvertierung. Von ADS über DBF bis zu SQL.

Moderator: Moderatoren

Antworten
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21186
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Delete all in PPO

Beitrag von Manfred »

Ich habe gerade mal aus Neugier ein

Code: Alles auswählen

DELETE all FOR Empty( bel->dm_gesamt )
in einer PPO angeschaut. Da kommt sowas bei raus

Code: Alles auswählen

dbEval( {|| dbDelete()}, _EarlyBoundCodeblock({|| Empty( bel->dm_gesamt )}), , , , .F.)
Kann mir jemand sagen, was es mit dem _EarlyBoundCodeblock auf sich hat? Das sieht oft so komisch aus, wenn der PreProzessor das umgewandelt hat. Geht aber auch anders, wenn man es direkt von Hand so kodiert.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9358
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 101 Mal
Danksagung erhalten: 361 Mal
Kontaktdaten:

Re: Delete all in PPO

Beitrag von Tom »

Ich würde davon ausgehen, dass die Funktion den Codeblock als "detached local" erzeugt.
Herzlich,
Tom
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15695
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Delete all in PPO

Beitrag von brandelh »

Dazu hat Steffen mal was erzählt, ich hoffe ich bekomme es noch richtig zusammen:

Wenn du einen codeblock so im Quellcode schreibst, dann wird der vom Compiler direkt erstellt und sofort alle nötigen Speicherbereiche in der EXE belegt und Referenzen gebildet (Pointer/Zeiger).
Das ist dann EarlyBound = der Comiler erledigt alles zur Compilierzeit ... dabei KANN er Fehler erkennen und sofort melden:

Code: Alles auswählen

bCode := {|nN| nM * 2 } // je nach Warnungseinstellung sollte hier eine Warnung kommen, dass eine eventuell nicht belegte Variable benutzt wird
während alle codeblocks die zur Laufzeit generiert werden standardmäßig late bound sind ...

Code: Alles auswählen

cCode := "{|nN| nM * 2 }"
bCode := &(cCode) // hier kann ein Laufzeitfehler kommen, meist aber erst bei der Ausführung ... NIL * 2 ... 
die flexible zweite Methode ist wegen der flexibilität aber eben nicht vom Compiler optimiert und damit langsamer (Zitat von Steffen) ...
Die oben aufgeführte Funktion soll das wohl ausgleichen, vermutlich wird hier zur Compilierzeit genug Speicher reserviert, und der Codeblock der später erzeugt wird nutzt diesen ...
Gruß
Hubert
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21186
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Re: Delete all in PPO

Beitrag von Manfred »

OK,

und was schließen wir daraus? Versuchen es wie bei 1 zu machen, oder egal so wie 2 machen? Theoretisch kann man ja einfach den PP drüber laufen lassen und dann kopieren...... Aber macht das immer Spass?
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15695
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Delete all in PPO

Beitrag von brandelh »

Manfred,

KEINEN PPO Code ansehen und einfach nutzen was in der Hilfe steht :D
Gruß
Hubert
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21186
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Re: Delete all in PPO

Beitrag von Manfred »

Der war gut. Wie oft habe ich hier schon gelesen:" Schau Dir mal den PPO an, dann weißt Du wie es geht" :lol:
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Herbert
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1991
Registriert: Do, 14. Aug 2008 0:22
Wohnort: Gmunden am Traunsee, Österreich
Danksagung erhalten: 3 Mal
Kontaktdaten:

Re: Delete all in PPO

Beitrag von Herbert »

Der PPO ist eigentlich eine interessante Sache. Nur, sollten wir doch unsere Anwenderprobleme lösen... Da ist ein PPO wirklich egal. Gut gebrüllt, Hubert.
Grüsse Herbert
Immer in Bewegung...
Antworten