[Allegro] Feature Request: "put" und PV

Thomas Berger ThB at Gymel.com
Fr Jan 25 09:47:36 CET 2013


Lieber Herr Eversberg, liebe Liste,

seit v32.7 ist das Gesamtpaket ja sozusagen "legacy-free", d.h.
die altbekannten 16bit-Versionen mancher Module werden zwar
noch ausgeliefert, normalerweise aber nicht genutzt. Insbesondere
"update.exe" ist jetzt nur noch eine Art Weiterleitung auf acon
mit update.job.

Hierbei sind mir nun zwei kleine Unterschiede im Verhalten
aufgefallen:

1.
Globale Manipulationen haben beim 16bit-Update anscheinend
zu einem Zeitpunkt angesetzt, wo der Aenderungszeitstempel
(etwa #99e) bereits vergeben war.

2. (wichtiger)
Produzieren die Indexparameter im Abschnitt H fuer die "Programmierte
Validierung" der Indexparameter (PV-Abschnitt) eine Meldung im Modus
"s" (= "vor dem Speichern"), so verweigern PRESTO (beim Speichern mit
F10) und a99 (bei "put") das Speichern des Datensatzes, das alte
Update.exe hat m.W. jedoch zwar die vom PV-Abschnitt generierte Meldung
protokolliert, den Satz ansonsten aber dennoch gespeichert.

Update.job hingegen nutzt naturgemaess das Flex/Job-Kommando "put",
Saetze die von der PV moniert werden, bleiben damit ungespeichert.
Insbesondere beim "Playback" einer Logdatei ist das wohl unerwuenscht,
problematisch oder gar fatal (durch eine nicht ausgefuehrte Neu- oder
Umspeicherung kann sich das Gefuege der internen Satznummern verschieben).

Eine analoge Situation duerfte sein, wenn a99 mit unbearbeiteten
Aenderungen beendet wird: Hier erfolgt nach Nachfrage ebenfalls -
bereits unter Umgehung des regulaeren onput.flx - ein Speichern
der Datensaetze und es ist laestig (bzw. im Fall des Herunterfahrens
des Rechners unmoeglich) hierbei eine Vielzahl von PV-Meldungen
wegzuklicken (mir ist dabei nicht klar, ob die Saetze dann
gespeichert werden oder nicht). Allerdings ist es hier nicht
entscheidbar, ob generell gespeichert oder abgewiesen werden soll,
klar ist nur, dass die Meldungen in dieser Situation fehl am
Platz sind.

Mein Vorschlag ist nun, ein neues "set"-Kommando zu spendieren, mit
dem die PV-Abarbeitung im Modus "s" bei "put" ab- bzw. angeschaltet
(Default) werden kann. Da alle naheliegenden Einbuchstaben-Kuerzel
bereits genutzt scheinen, schlage ich "set Validate" vor, da ist
dann die Analogie zum funktional aehnlichen "set Timestamp" gross.

[In ABASE::AwPut scheint "#u2 ssss" der einzige Fall zu sein, wo
eine Feinsteuerung Sinn macht, entgegen der Dokumentation wird
uebrigens dann "-1" (vielleicht EOF?) zurueckgegeben wie bei einer
Datenbankinkonsistenz, der Kommentar zur Routine kuendigt aber "0"
fuer "rec was not properly prepared" an, was m.E. auch mehr Sinn macht
(und im Erfolgsfall wird "1" zurueckgegeben, nicht die Anzahl der
Felder wie der Kommentar sagt?)]


viele Gruesse
Thomas Berger



Mehr Informationen über die Mailingliste Allegro