AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Blob direkt in File schreiben

Blob direkt in File schreiben

Ein Thema von day · begonnen am 22. Sep 2004 · letzter Beitrag vom 22. Sep 2004
Antwort Antwort
day

Registriert seit: 10. Mai 2004
223 Beiträge
 
#1

Blob direkt in File schreiben

  Alt 22. Sep 2004, 09:23
Hallo

Wie kann ich ein BLOB datenfeld direkt in eine Datei schreiben? Alternativ lösung wäre das ganze zuerst in einen OLEContainer zu laden und von dort aus zu speichern.

Code:
procedure TForm1.Button5Click(Sender: TObject);
var S: TStream;
begin

  S:=TMemoryStream.create;
  try
    S:=Table1.CreateBlobStream(Table1.FieldByName('TEXTMODULE'), bmRead);
    OleContainer1.LoadFromStream(S);
  finally
    S.Free
  end;
end;
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Blob direkt in File schreiben

  Alt 22. Sep 2004, 09:30
Hai day,

kannst du nicht einfach s.SaveToFile () benutzen?
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
day

Registriert seit: 10. Mai 2004
223 Beiträge
 
#3

Re: Blob direkt in File schreiben

  Alt 22. Sep 2004, 09:48
Hallo

so gehts
S:=TFileStream.create('test.doc',fmCreate);
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Blob direkt in File schreiben

  Alt 22. Sep 2004, 09:52
Zitat von day:
... Aber leider wird diese Funktion bei TStream nicht angeboten.
Und was ist wenn Du S gleich als TMemoryStream definierst?
Delphi-Quellcode:
var S: TMemoryStream;
begin
  S := TMemoryStream.create;
  try
    S := Table1.CreateBlobStream(Table1.FieldByName('TEXTMODULE'), bmRead);
    S.SaveToFile ();
  finally
    S.Free;
  end;
end;
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
day

Registriert seit: 10. Mai 2004
223 Beiträge
 
#5

Re: Blob direkt in File schreiben

  Alt 22. Sep 2004, 09:59
Hallo

Dachte ich eben auch aber CreateBlobStream gibt einen TStream zurück (vielleicht mit casten).
Aber wenn ich ein FileStream erzeuge dann schreibt der direkt in die Datei (Was ja eigentlich logisch ist )

Wenn ich den FileStream mit Free wieder freigebe, wird die Datei dann automatisch auch wieder freigegeben?
Ich möchte nämlich das file wieder überschreiben. Habe aber jetzt das problem, dass ich eine Exception bekomme (Cannot open file text.doc) wenn ich versuche ein zweites mal die Datei zu erzeugen
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#6

Re: Blob direkt in File schreiben

  Alt 22. Sep 2004, 10:07
Dann wirst Du mit 2 Streams arbeiten müssen:
Ungetestet:
Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
var
  S: TStream;
  S2 : TMemoryStream;

begin
  S := TStream.create;
  S2 := TMemoryStream.Create;
  try
    S := Table1.CreateBlobStream(Table1.FieldByName('TEXTMODULE'), bmRead);
    S.Position := 0;
    S2.CopyFrom(S,0);
    S2.SaveToFile();
  finally
    S.Free;
    S2.Free;
  end;
end;
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
day

Registriert seit: 10. Mai 2004
223 Beiträge
 
#7

Re: Blob direkt in File schreiben

  Alt 22. Sep 2004, 10:18
Zitat:
Dann wirst Du mit 2 Streams arbeiten müssen:
Wie meinst du das? Also folgender massen geht es.
Aber das Problem ist jetzt noch, dass ich das file nicht mehr überschreiben kann. Falls ich es erneut ausgeben möchte.


Code:
procedure TForm1.Button5Click(Sender: TObject);
var S: TStream;
begin

  S:=TFileStream.create('test.doc',fmOpenWrite);
  try

    S:=Table1.CreateBlobStream(Table1.FieldByName('TEXTMODULE'), bmRead);
 
  finally
    S.Free
  end;
end;
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:03 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