Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi OLE-Instanz von Word mit Datei aus Datenbank füttern (https://www.delphipraxis.net/63584-ole-instanz-von-word-mit-datei-aus-datenbank-fuettern.html)

Alloc 20. Feb 2006 22:02

Datenbank: AbsoluteDB • Version: 5 • Zugriff über: SQL

OLE-Instanz von Word mit Datei aus Datenbank füttern
 
Hi alle,

erstmal sorry falls das nicht ganz in Datenbanken passt... wusste einfach nicht wo die Frage rein sollte ;)

Zum Thema:
Ich habe hier ein Programm welches in einer SQL-Datenbank Word-Dateien enthält. Nun will ich, dass ich aus dem Prog heraus eine OLE-Word-Instanz starten kann und in der soll dann eine dieser Word-Dateien aus der Datenbank geladen werden. Möglichkeit 1 wäre ja einfach die Datei vorher auf die Festplatte zu schreiben und dann ganz normal öffnen. Das ist aber (grad bei vielen Dateien, wozu es schnell kommen wird) ziemlich unschön. Daher würde mich mal interessieren, ob man Word (per OLE) irgendwie beibringen kann, die Daten zB aus einem MemoryStream von Delphi zu laden oder die Daten direkt irgendwie einfach nach Word übertragen kann (quasi die Binärdaten aus dem Stream)?

mfG
Chris

alzaimar 21. Feb 2006 07:21

Re: OLE-Instanz von Word mit Datei aus Datenbank füttern
 
Soweit ich weiss, geht das nicht. Du kannst aber die Datei in eine Windows-Temp-Datei schreiben. Die wird dann beim nächsten Windows-Start automatisch gelöscht (oder beim Runterfahren?)

Delphi-Quellcode:
function TempPath: string;
var
  i: integer;

begin
  SetLength(Result, MAX_PATH);
  i := GetTempPath(Length(Result), PChar(Result));
  SetLength(Result, i);
  IncludeTrailingPathDelimiter(Result);
end;

function TempFilename: string; // <--- Die ist was für Dich
begin
  SetLength(Result, MAX_PATH + 1);
  GetTempFileName(PChar(TempPath), 'BLA', 0, PChar(result));
  Result := PChar(Result);
end;

Bernhard Geyer 21. Feb 2006 16:21

Re: OLE-Instanz von Word mit Datei aus Datenbank füttern
 
Zitat:

Zitat von alzaimar
Soweit ich weiss, geht das nicht. Du kannst aber die Datei in eine Windows-Temp-Datei schreiben. Die wird dann beim nächsten Windows-Start automatisch gelöscht (oder beim Runterfahren?)

Stimmt nicht. Auszug aus der Win32-Hilfe:

Zitat:

When Windows shuts down, temporary files whose names have been created by this function are not automatically deleted.

Alloc 21. Feb 2006 20:21

Re: OLE-Instanz von Word mit Datei aus Datenbank füttern
 
Danke für eure schnellen Antworten ...

@alzaimar:
Ich denke es ist dabei relativ egal, ob ich das Ganze kurz in "Temp"-Dateien schreibe oder einfach in eine "normale" Datei und die danach lösche ;)
Das Dumme ist halt, dass ich da durchaus mal aus der DB so 20 Word-Docs rausholn müsste, auf die HD schreiben und dann von da nach Word laden ... wäre deswegen halt wesentlich schöner, wenn ich entweder die Binärdaten in Word laden oder eine Art MemoryStream dort laden könnte. Aber bleibt mir wohl scheinbar nichts andres übrig als der Umweg über Dateien ... :twisted: :???:

mfG,
Chris


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