| Структура программирования, программирование, языки программирования, книги программирование | На сайте представлена информация про программирование в Интернете и работу |
|
Дружественные классы в Delphi, Как бы сделать? КВадратное уравнение, обычная программа с дискриминантом :Определитель номера, :Определитель номера I/O Error 32 при редактировании файла Как запонить StringGrid из текстового файла Подобие Drag&Drop Как можно связать TTreeView с базой?, может кто сталкивался? Разделу нужна помощь, Заполнение FAQ Cоединение 2-х html-ин, в дельфе ???, Есть процеда, или все ручками делать ??? Компоненты Current Project, AllDataBaseDiagrams Блокировка клавиатуры (временная), в WinXP ??? - вместо текста Delphi without BDE, Установка Delphi RichEdit, Подсветка синтаксиса! |
Платные хостинги Раскрутка сайта Книги по программированию Как можно связать TTreeView с базой?, может кто сталкивался?
- Добрый день!Вот решил написать электронный учебник!Выглядеть он будет так!Слева TreeView, справа компонент TWebBrowser (это очень скупой описание, на самом деле там будет админовская часть для редактирования разделов и статей) ! Все статьи будут храниться в базе MS Access, но, изучив (возможно, не полностью) TTreeView, я столкнулся с проблемойредактирования, удаления разделов! Проще скажу - не могу связать TTreeView с базой, точнее таблицей разделов!Немного о базе, точнее о её структуре!Я решил не описывать все таблицы, и все поля, опишу лишь те, что представляют важность для данного вопроса!И так:Код TABLE parts part_id - индекс раздела (уникальный) part_name - название раздела parent_id - тут содержится индекс родительского раздела!TABLE articles article_id - индекс статьи (уникальный) article_text - сама статья article_part - индекс раздела, к которому относится данная статья!highlightSyntax('sqlAwYjdk','sql');Вот вроде все с базой!Теперь вопрос! Как мне можно связать TTreeView с базой?Есть два моих варианта!1. Созадть запись типа Код Notes = record;name :String; id : Integer;end;highlightSyntax('delphijE1NTR','delphi');Тут будет при выборе раздела в TreeView производится поиск по записи с таким же именем, и по нему узнаваться id, раздела!2.Индексировать разделы не по уникальному id, а по имени, но, IMHO, глупо!Кто что посоветует!???Vit, если не сложно, посоветуйте что-нибудь, Вы ведь работаете с факом, а там тот же принцип! - У каждого нода (элемента) TreeView есть свойство Data - в нём и храни id...там можешь хранить всю необходимую инфу для идентификации раздела/темы...Добавляй в TreeView например так:Код TreeView1.Items.AddNode(nil, Node1, 'Раздел1', Pointer(TopicId), ...)highlightSyntax('delphiViYzk=','delphi');Или у уже добавленного нода присваивай:Код Node.Data := Pointer(TopicId);highlightSyntax('delphiBiNGM2','delphi');Потом, чтобы узнать Id выбранной темы:Код TopicId := Integer(TreeView1.Selected.Data);highlightSyntax('delphiYzNiZG','delphi');PS: (добавлено позднее, после Вита)похоже, что я неправильно понял суть вопроса Это сообщение отредактировал p0s0l - 12.11.2004, 00:04 - Древовидные базы данных из реляционных делаются добавлением поля - ссылки на родительский узел. Например дерево:Код Европа+Украина ++Киев++Харьков+Россия++Москва++ПитерАмерика+США++ВашингтонhighlightSyntax('nocolorwYjM4N','nocolor');Кодируется в таблице:Код id parent value1 0 Европа2 1 Украина 3 2 Киев4 2 Харьков5 1 Россия6 5 Москва7 5 Питер8 0 Америка9 8 США10 9 ВашингтонhighlightSyntax('nocolor0NmQzM','nocolor'); - 2p0s0l Спасибо, именно это мне и нужно было!!!2Vit, спасибо, я так и предполагал хранить, проблема была в хранение индекса у TreeView, только, может, я не правильно описал, я как раз не знал, можно ли отдельному ноду, или поддереву задавать как-то id?Спасибо p0s0l-у!!! |