Einzelnen Beitrag anzeigen

Benutzerbild von mschaefer
mschaefer

Registriert seit: 4. Feb 2003
Ort: Hannover
2.032 Beiträge
 
Delphi 12 Athens
 
#8

Re: TTreeView in SQL-Datenbank speichern?

  Alt 26. Nov 2005, 14:29
Moin, moin,

also auf die praktische Umsetzung der allgemeinen TreeViewStruktur in eine angepasste Tabellenstruktur bin ich ja wirklich gespannt! Irgenwie beschleicht mich der Verdacht, dass hier doch noch einige nicht genannte Tücken zu erwarten sind. Deshalb gehe ich hiermit jetzt die Variante an, einen TreeView komplett in ein Blobfeld zu speichern. Damit wird meine Tabellenstruktur ziemlich banal

SQL-Code:
CREATE TABLE TUser (
  Pid INTEGER,
  Name INTEGER,
  Rights BLOB )

Stellt sich halt nur noch die Frage, wie man die Baumsstruktur in das [Rigths] Feld bekommt und wieder heraus.


Delphi-Quellcode:
{ Daten aus Blobfeld in TreeView }

procedure TableToTreeView;
var
Local_Stream: TMemoryStream;
begin
   TreeView1.Items.Clear;
   Local_Stream := TMemoryStream.Create();
   (Table1.FieldByName('Rigths') as TBlobField).SaveToStream(Local_Stream);
   Local_Stream.Seek(0, soFromBeginning);
   TreeView1.LoadFromStream(Local_Stream);
   Local_Stream.Free;
end;
Delphi-Quellcode:
{ Daten aus TreeView in Blobfeld  }

procedure TForm1.TreeViewToTable;
var
  Local_Stream: TMemoryStream;
begin
  Local_Stream:= TMemoryStream.Create();
  TreeView1.SaveToStream(Local_Stream);
  Local_Stream.Seek(0, soFromBeginning);
  (Table1.FieldByName('Rigths') as TBlobField).LoadFromStream(Local_Stream);
  Local_Stream.Free;
end;
So jetzt braucht man eigentlich nur noch eine Editkomponente oder Formular zum Bearbeiten des Treeview.


So long // Martin


PS: Unter TreeView zu Ini findet sich auch noch interessantes zumm Speichern eines Trees.

PPS: Unter DBTreeView findet sich auch eine interessante datenssensitive TreeView-Variante.
Martin Schaefer
  Mit Zitat antworten Zitat