Entwickler-Ecke

Dateizugriff - TMemorySteam als Datei abspeichern, was ist falsch ??


flaavia - Mo 09.06.03 09:57
Titel: TMemorySteam als Datei abspeichern, was ist falsch ??
hallo

Ich habe entsprechend eines Forum-Vorschlags auf ein Blob-Datensatz wie unten zugegriffen. Kann ich diesen jetzt mit


Delphi-Quelltext
1:
result.SaveToFile(savedBlobOrt);                    


wie unten angegeben in eine Datei speichern? Irgendetwas muss hierbei falsch sein, denn es funktioniert nicht. Wahrscheinlich liegt es wieder an meinem Anfängerstatus, dass ich den Fehler nicht erkenne. Es wäre sehr nett, wenn mir jemand auf die Sprünge helfen könnte, und mir erklärt wie ich den Blobstream abspeichern kann


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
function TfoMain.GetBlobStream(ADOQuery1: TADOQuery): TMemoryStream;
begin
  result := TMemoryStream.Create;

  ADOQuery1.Active := False;
  ADOQuery1.SQL.Clear;
  ADOQuery1.SQL.Append(s); // s ist der SQL-Abfrage-String
  ADOQuery1.Active := True;

  result.LoadFromStream(ADOQuery1.CreateBlobStream(ADOQuery1.FieldByName('FrageAkustisch'), bmRead));
  result.SaveToFile(savedBlobOrt); // savedBlobOrt ist der Dateipfad mit Dateinamen als string
end;


Vielen Dank im vorraus für die Hilfe


PS: eigentlich möchte ich den Blobstream dem MediaPlayer zum abspielen übergeben. Nach meinem augenblicklichen (deutlich begrenztem) Kenntnisstand kann ich dies aber nur über die Zuweisung eines Filename (MediaPlayer.FileName) machen und muss daher den aus der Datenbank ausgelesenen Blobstream erst irgendwo mit einem FileName abspeichern, um ihn dann im Mediaplayer wieder aufrufen zu können. ?? weis jemand einen besseren Ansatz, die als TMemoryStream vorliegenden Daten direkt an den MediaPlayer zu übergeben ???

nochmals vielen Dank für alle Tips


MSCH - Mo 09.06.03 11:28

hi,
wie wärs mit MyQuerry[fieldname].saveToFile(); ?

Ansonsten, den Stream mit Seek() auf Position 0 und dann schreiben, denn nach dem Lesen steht der "Satzzeiger" am Streamende und es dürfte immer eine leere Datei enstehen.
grez
msch


flaavia - So 13.07.03 11:37

Danke für die Tips :D