[Allegro] Mehrere a99-Aufrufe in Stapeldatei

Sibylle Koczian Sibylle.Koczian at T-Online.de
Do Nov 9 10:40:00 CET 2006


Lieber Herr Allers,

"Heinrich Allers" <allers at t-online.de> schrieb:
> 
> Ich wiederhole:
> 
> > Lasse ich in einer Stapeldatei die Aufrufe zweier Datenbanken, z.B. von
> > c:\allegro\a99.exe c:\allegro\demo\orda.ini
> > und
> > c:\allegro\a99.exe c:\allegro\demo2\orda.ini
> > aufeinanderfolgen, ...
> 
> (Ab hier formuliere ich neu:)
> 
> ... und lasse dann während des ersten (auf \demo) 
> zielenden Datenbankaufrufes die Flexbefehl--Abfolge
> 
> var "del c:\\allegro\\demo2\\cat*.*"\dos
> 
> auf das Verzeichnis c:\allegro\demo2 los, dann liegen dort anschließend 
> nicht mehr nur 10 Dateien, sondern derer 14, und 
> unter ihnen die Dateien cat.adx, cat.res, cat.stl und cat.tbl, die 
> dem Löschbefehl zufolge es dort garnicht mehr geben dürfte! Ergo: diese 
> Dateien waren irgendwie schon im a99-Griff und konnten deshalb nicht 
> gelöscht werden. Die Gegenprobe bestärkt diese Interpretation: 
> Kommentiere ich in der Stapeldatei den zweiten (auf \demo2 zielenden) 
> Aufruf aus, so liegen nach Ausführung des flexbasierten Löschbefehls 
> tatsächlich nur noch die der Erwartung gemäßen 10 Dateien in 
> c:\allegro\demo2.
>   

Ich habe versucht, das zu reproduzieren, und das Ergebnis war auf den ersten Blick seltsam. Auf den zweiten Blick glaube ich fast, dass es die Sache aufklärt.

Zusatzfrage: wie groß waren bei Ihnen die noch (oder wieder!) vorhandenen cat.*-Dateien? Und was für eine Meldung kam, als die Batch--Datei den zweiten Datenbankaufruf ausgeführt hat?

Ergebnis bei mir: mit den beiden Demo-Dateien so, wie Sie es beschreiben; allerdings ist die cat.adx 2048 Byte groß und die drei anderen 0 Byte. Daraufhin habe ich mir das Verzeichnis angesehen, nachdem ich den Flex--Befehl in demo gegeben hatte, so lange diese Datenbank noch offen, der zweite Aufruf also noch nicht gestartet war: alle Dateien weg.

Mit einer anderen Datenbank wurden die Dateien komplett gelöscht und blieben weg. Bei dieser anderen Datenbank heißt die Ini-Datei so wie die Datenbank, d.h. sie wird mit gelöscht, anders als bei den Demo-Datenbanken. Ich denke, hier passiert folgendes:

Der DOS-Befehl löscht die Dateien ganz regulär. Wenn dabei die Ini-Datei mit erwischt wird, dann findet der zweite Aufruf nichts, man bekommt dann das Fenster, das zu einer fehlenden oder falsch angegebenen Ini-Datei passt. Wird sie aber nicht erwischt, dann wird beim zweiten Aufruf die Datenbank neu angelegt, mit eben den von Ihnen genannten vier Dateien. Es kommt dann das Fenster, das darüber informiert, dass man dabei ist, eine neue, noch leere Datenbank anzulegen.

Ein "pause" in der Batch-Datei zwischen den beiden Aufrufen hat bei mir den Ablauf nicht verändert (aber wenn man natürlich in diesem Augenblick ins Verzeichnis schaut, dann sind die gelöschten Dateien noch weg und nicht wieder neu angelegt).

Passt das zu Ihrem Ablauf?

Beste Grüße,
Koczian

-- 
Dr. Sibylle Koczian 
Fasanenstrasse 12 
D-82293 Mittelstetten 




Mehr Informationen über die Mailingliste Allegro