Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Dokument extern bearbeiten und wieder als blob speichern (https://www.delphipraxis.net/71669-dokument-extern-bearbeiten-und-wieder-als-blob-speichern.html)

ils566 19. Jun 2006 11:42

Datenbank: Mysql • Version: 5 • Zugriff über: mydac

Dokument extern bearbeiten und wieder als blob speichern
 
Hallo Leute,

stellt Euch bitte folgendes Szenario vor:

1. StarOffice Dokumente werden in einem blob Feld gespeichert.
2. Aus meiner eigenen Anwendung wird das blob Feld als externe Datei gespeichert werden und mit dem StarOffice Writer zur Bearbeitung durch den User aufgerufen
3. Wenn der User das geänderte Dokument in StarOffice speichert, möchte ich gerne das neue Dokument AUTOMATISCH zurückschreiben.

Habt Ihr eine Idee wie sich insbesondere Punkt 3 realisieren läßt. Das Aus- und Einlagern des Dokuments in die Datenbank ist recht einfach, aber wie soll meine Anwendung erkennen, dass die Bearbeitung abgeschlossen ist und das Dokument wieder eingelagert werden kann?

Im Voraus vielen Dank für Eure kreative Anregungen/Ideen.

Grüße
Ilias

mkinzler 19. Jun 2006 12:42

Re: Dokument extern bearbeiten und wieder als blob speichern
 
1.)Blobfeld.LoafFromFile()
2.)Blobfeld.SaveToFile()
3.) Shellüberwachung für Verzeichnis einnrichten und dann bei Änderung zurückschreiben.

Alloc 19. Jun 2006 12:56

Re: Dokument extern bearbeiten und wieder als blob speichern
 
Hi mkinzler,

könntest du Punkt 3 etwas weiter ausführen oder Hinweise geben, wo man Infos dazu bekommt? Habe nämlich genau die gleiche Problematik hier ...

mfG,
Chris

mkinzler 19. Jun 2006 13:07

Re: Dokument extern bearbeiten und wieder als blob speichern
 
Einfach eine TShellChangeNotifier-Komponente auf die Form legen. Den Pfad in .Root einstellen, in .NotifyFilters die Art der Überwachung einstellen und dann den Eventhandle .onChange implemnetiern.

Alloc 19. Jun 2006 13:51

Re: Dokument extern bearbeiten und wieder als blob speichern
 
Gibt es sonst noch eine Möglichkeit zur Überwachung der Datei? Denn wenn ich das richtig verstanden habe, wird bei der Methode lediglich überwacht, wann die Datei geändert wird. Wenn ich aber zum Beispiel an einem Dokument arbeite, speicher ich auch des öfteren mal zwischendurch. Also würde bei der Methode schon zu früh angenommen, dass ich fertig bin.
Lieber wäre es mir, wenn ich überwachen könnte, ob die Datei noch geöffnet ist ... geht sowas?

Gruß,
Chris

mkinzler 19. Jun 2006 13:59

Re: Dokument extern bearbeiten und wieder als blob speichern
 
Nur in dem du zyklisch versuchst die datei exklusiv zu öffnen. wenn dies geht wurde sie von StarOffice geschlossen.

Alloc 19. Jun 2006 14:09

Re: Dokument extern bearbeiten und wieder als blob speichern
 
Und Windoof speichert nicht irgendwo welche Dateien gerade offen sind? Oder zu jeder einzelnen Datei ob sie gerade offen ist?
Wobei, das wäre ja zu einfach... Also wirds M$ nich gemahct haben :cry:

Chris

winnionkel 23. Jun 2006 08:09

Re: Dokument extern bearbeiten und wieder als blob speichern
 
Hallo,
Habe das auch mal gemacht.
Allerdings mit Word Dokumenten. Word erzeugt eine Temporäre Datei wenn das Dokument geladen wird.
Diese Datei habe ich in bestimmten Zeitabständen abständen überprüft.
War sie nicht mehr vorhanden, konnte ich das Dokument wieder in der Datenbank speichern.
Es gab damit nie Probleme außer wenn der Rechner abstürzt. Weil dann die Temp-Datei noch vorhanden
war.

Gruß Winni

ils566 23. Jun 2006 14:27

Re: Dokument extern bearbeiten und wieder als blob speichern
 
Hallo,

Danke für die Ideen, ich werde das in den nächsten Tagen austesten und hier berichten.

Grüße
ilias

ils566 4. Jul 2006 00:04

Re: Dokument extern bearbeiten und wieder als blob speichern
 
Was ist eigentlich mit OLE-Automation bzw. mit ActiveX Komponenten.
Weiß jemand ob sich damit Dokumente die in einer Tabelle gespeichert sind, extern bearbeitet werden können?

mkinzler 4. Jul 2006 05:26

Re: Dokument extern bearbeiten und wieder als blob speichern
 
Meinst du einen Eventsink in Word der der Programm über das Speichern informiert?

ils566 4. Jul 2006 11:21

Re: Dokument extern bearbeiten und wieder als blob speichern
 
@mkinzler: ja, ich weiß zwar nicht was ein Eventsink ist, aber es muss etwas in der Richtung sein.

Sobald der User Ctrl+S drückt wäre es super wenn delphi irgendwie eine Notification erhält.

Ich habe gestern Beispiele gefunden wie StarOffice über die StarOffice API aufgerufen werden kann und meine dass es doch auch einen ELEGANTEN Weg "zurück geben muss, damit das bearbeitete Dokument wieder sicher in der DB untergebracht wird.

Die Programm-zu-Programm Kommunikation habe ich früher mit DDE gemacht. Nun soll doch OLE die Weiterentwicklung davon sein.

grüße aus Ludwigsburg
ilias


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:11 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