Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Загрузка дерева [D6, MSSQL]


killer_john ©   (2003-09-09 05:54:00) 

Как загрузить в компонент TreeView иерархическую структуру из базы, в которой она содержится( mssql).


Nucl   (2003-09-09 16:55:00) [1]

смотря как хранится дерево в базе, если в иерархии таблиц то читаешь мастера и перебираешь его записи, для каждой записи читаешь ее детей и т.д.
Если в одной таблице то сканируешь по столбцам.


Virgis   (2003-09-09 09:52:00) [2]

Я делал так:
таблица Place такова:
ID (идентификатор)
ParentID (идентификатор родителя)
PlaceName (название места)


procedure TForm1.FormShow(Sender: TObject);
begin
if Form1.DB.Connected then FillTreeView(nil);
end;

procedure TForm1.TreeView1Expanding(Sender: TObject; Node: TTreeNode; var AllowExpansion: Boolean);
begin
if Node.Count=0 then FillTreeView(Node);
end;

procedure TF_Diafragmos.FillTreeView(node:TTreeNode);
var subNode:TTreeNode;val:pTWord;
begin
subNode:=nil;
if node=nil then
Query1.SQL.Add("select * from Place where ParentID is null")
else
Query1.SQL.Add("select * from Place where ParentID="+IntToStr(pTWord(Node.Data)^));
Query1.Open;
Query1.First;
while not Query1.Eof do
begin
New(val);
val^:=Query1.Fields.FieldByNumber(1).Value;
subNode:=TreeView1.Items.AddChildObject(node,Query1.Fields.FieldByNumber(3).Value,val);
subNode.ImageIndex:=0;
subNode.SelectedIndex:=1;
subNode.HasChildren:=true;
Query1.Next;
end;
if subNode=nil then node.HasChildren:=false;
Query1.SQL.Clear;
Query1.Close;
end;


HSolo   (2003-09-09 09:02:00) [3]

http://delphi.vitpc.com/helloworld/dbtreeview.htm


Radionov Alexey   (2003-09-09 08:15:00) [4]

Смотря как она (структура)там хранится.

Поищи в инете TDBTreeView и посмотри как он это делает :)


Наверх

Титульная страница Поиск, карта сайта Написать письмо