Autor Beitrag
flaavia
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 105

WinXp Vista
D6 Ent, D2007 Ent
BeitragVerfasst: Mo 09.06.03 09:57 
hallo

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

ausblenden 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

ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1448
Erhaltene Danke: 3

W7 64
XE2, SQL, DevExpress, DevArt, Oracle, SQLServer
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 105

WinXp Vista
D6 Ent, D2007 Ent
BeitragVerfasst: So 13.07.03 11:37 
Danke für die Tips :D