Autor Beitrag
lapadula
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 180
Erhaltene Danke: 10



BeitragVerfasst: Do 13.12.18 11:55 
Hallo, ich würde gerne wissen wie Ihr folgendes lösen würdet.

Es geht um ein kleines Tool zum Erstellen und Verwalten von Angeboten.
Die Angebote sollten sowohl in der Datenbank als auch in einem Word-Dokument gespeichert werden.
Die physikalischen Angebote sollen mit dem Eintrag aus der Datenbank verknüpft sein.

Beim erstellen der Angebote werden diese einmal in die Datenbank gespeichert und es wird ein Dokument erzeugt. In die Meta-Daten
des Dokuments speichere ich die ID aus der Datenbank, um später, falls das angebot gelöscht wird das Dokument ebenfalls zu löschen.
Ebenso auch, wenn das Angebot aus dem Programm heraus gedruckt werden soll, sprich das Word-Dokument soll geöffnet werden.

Allein über den Namen wollte ich das Dokument nicht löschen, falls es mal umbenannt wird und dabei versehentlich das falsche Dokument gelöscht oder gedruckt wird.

Es gibt aber ein kleines Problem. Beim Durchsuchen aller Dokumente aus diesem Ordner werden diese kurz geöffnet, um nach der ID in den Meta-Daten
zu sehen. Wenn aber bereits ein Dokument aus diesem Ordner geöffnet ist, z.B. weil man es gerade drucken will und gleichzeitig möchte der Benutzer ein
anderes Dokument drucken, dann wird eine Exception geworfen, weil er beim öffnen des neuen Dokuments alle anderen nach der ID durchsucht und dabei auf das bereits geöffnete stößt.

Das einzige was mir einfällt wäre, dass wenn eine Exception beim öffnung auftritt, ich mit den anderen Dateien aus der Schleife fortfahre.

Ich nutze DSOFile.dll von Microsoft um in die Meta-Daten zu schauen und zu schreiben.
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4700
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Do 13.12.18 12:06 
Was ist der Grund das ihr das Word Dokument überhaupt irgendwo aus der Platte nachhalten wollt?

Reicht es nicht aus jederzeit aus der Datenbank/Anwendung mit den Daten zum Angebot dass passende Worddokument erstellen zu können?
Wenn ihr nicht gerade wilde Dinge mit signierten Dokumenten macht sollte da jedesmal ein gleichwertiges Dokument aus der Datenbank fallen das von einer Kopie von einer Datei auf der Platte nicht zu unterscheiden ist.

Für diesen Beitrag haben gedankt: lapadula
lapadula Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 180
Erhaltene Danke: 10



BeitragVerfasst: Do 13.12.18 13:27 
Ich weiss es ehrlich gesagt nicht, habe das bis jetzt nicht hinterfragt, nur gemacht was gesagt wurde.

Werde ich vermutlich ändern.
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4700
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Do 13.12.18 13:39 
Zitat:
habe das bis jetzt nicht hinterfragt, nur gemacht was gesagt wurde

Das Verhalten ist ein Anti-Pattern das es möglichst zu vermeiden gilt ;)