Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Вопрос по TreeView, в БД 
:(
    Опции темы
Albinos_x
Дата 5.6.2005, 22:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Evil Skynet
****


Профиль
Группа: Комодератор
Сообщений: 3288
Регистрация: 28.5.2004
Где: X-6120400 Y-1 4624650

Репутация: 1
Всего: 108



сначало проверь существование файла
например

Код
...
sf:=ExtractFilePath(Application.ExeName);
If (FileExists(sf+'....')) then
   begin
   TreeView.LoadFromFile(...);
...



--------------------
"Кто владеет информацией, тот владеет миром"    
Уинстон Черчилль
PM MAIL ICQ   Вверх
Sidelong
Дата 5.6.2005, 23:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 18
Регистрация: 25.1.2005

Репутация: нет
Всего: нет



Цитата(Albinos_x @ 5.6.2005, 22:51)
сначало проверь существование файла
например

Код
...
sf:=ExtractFilePath(Application.ExeName);
If (FileExists(sf+'....')) then
   begin
   TreeView.LoadFromFile(...);
...

Дело в том, что у меня база данных клиен-сервер, и все записис храняться в MS SQL Server`е

Тогда как быть? если у меня так.
PM MAIL   Вверх
Dynamic
Дата 6.6.2005, 06:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 372
Регистрация: 5.7.2004
Где: Салехард

Репутация: 2
Всего: 15



Цитата(Sidelong @ 5.6.2005, 23:15)
Дело в том, что у меня база данных клиен-сервер, и все записис храняться в MS SQL Server`е

То есть ты и ветви дерева хранишь в БД? Тогда тебе вообще лучше использовать какой-нить DBTree. Save/LoadFromFile тогда здесь не очень к месту, хотя выбор, в-принципе, за тобой.


--------------------
Было бы о чем молчать, а уж что сказать – всегда найдется...
PM MAIL WWW   Вверх
Sidelong
Дата 6.6.2005, 10:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 18
Регистрация: 25.1.2005

Репутация: нет
Всего: нет



Цитата(Dynamic @ 6.6.2005, 06:38)
Цитата(Sidelong @ 5.6.2005, 23:15)
То есть ты и ветви дерева хранишь в БД? Тогда тебе вообще лучше использовать какой-нить DBTree. Save/LoadFromFile тогда здесь не очень к месту, хотя выбор, в-принципе, за тобой.


Корневые ветви:
Рабочая станция
ТехСредство
Изделия

у мепрописаны в Item`е TreeView

в TreeView я нажимаю правую кнопку мыши (PopUpMenu) жму добавить либо "Раб.стан." либо "ТехСредство" либо "Изделие"
например, введенное имя Рабочей станции отображается в TreeView и заносится в БД.

После завершения работы программы все введенное в TreeView изчезает smile

Как быть?

С уважением, Данил.
PM MAIL   Вверх
Dynamic
Дата 6.6.2005, 11:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 372
Регистрация: 5.7.2004
Где: Салехард

Репутация: 2
Всего: 15



Посмотри пример к этой теме, там похожая задача.


--------------------
Было бы о чем молчать, а уж что сказать – всегда найдется...
PM MAIL WWW   Вверх
Albinos_x
Дата 6.6.2005, 16:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Evil Skynet
****


Профиль
Группа: Комодератор
Сообщений: 3288
Регистрация: 28.5.2004
Где: X-6120400 Y-1 4624650

Репутация: 1
Всего: 108



у базы данных должна быть функция Post , которая сохраняет все изменения в БД.


--------------------
"Кто владеет информацией, тот владеет миром"    
Уинстон Черчилль
PM MAIL ICQ   Вверх
Sidelong
Дата 6.6.2005, 19:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 18
Регистрация: 25.1.2005

Репутация: нет
Всего: нет



Цитата(Albinos_x @ 6.6.2005, 16:37)
у базы данных должна быть функция Post , которая сохраняет все изменения в БД.

есть у меня такая функция!
PM MAIL   Вверх
Sidelong
Дата 7.6.2005, 22:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 18
Регистрация: 25.1.2005

Репутация: нет
Всего: нет



Код

procedure TForm2.FormCreate(Sender: TObject);
var i,j,k: integer;
TreeNode, Node: TTreeNode;
begin
TreeView1.Items.BeginUpdate;
for i:=1 to ADOQuery_rab_st.RecordCount do
  begin
     TreeNode := TreeView1.Items.AddChildObjectFirst(root,
     ADOQuery_rab_st.FieldByName('Название_рабочей_станции').AsString,
     Pointer(ADOQuery_rab_st.FieldByName('ID_рабочая_станция').AsInteger));
     TreeNode.ImageIndex := 0;
     TreeNode.SelectedIndex := 1;
     TreeView1.Items.AddChildObject(TreeNode,'',nil);
     ADOQuery_rab_st.Next;
end;
TreeView1.Items.EndUpdate;
end;


помогите! в результате загрузки БД выводит Рабочии станции которые храняться в БД в корневухе TreeView
а в TreeView в Items`ах прописаны
+Раб.станция
+Оргтехника
+Изделия

Как исправить положение????
PM MAIL   Вверх
AZDesign
Дата 10.6.2005, 09:22 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Цитата(Sidelong @ 2.6.2005, 12:53)
Вообщем, сделал чтобы в TreeView по нажатию правой кнопки мыши вылетало PopUpMenu такого содержания:

Добавить        ----> Рабочая станция
Переименовать      Изделие
--------------------        Техсредство
Удалить

как сделать так чтобы в TreeView при добавлении имени рабочей станции поулчалось

Рабочая станция
.
.- имя раб.стан.1
.- имя раб.стан.2
...........
.- имя раб.стан.n

т.е. при добавлении либо раб.стан. либо Изделия либо Техсредства
они в TreeView виделсь 1 раз а все остальные ихние введеные имена появлялись в соответствии под ними?!


Прежде чем нажимать на кнопки нужно простроить БД
Ты в этом видно не разбираешься.
TreeView только отображает информацию, все его функции, которые обычно применяются, в данном случае являются вспомогательными
Итак:
Код


Create table TreeHard (
       HardID        Integer not null Primary Key,                   -- Идентификатор
       HParent      Integer default 0,                                    --  Ссылка на родителя
       hCount       Integer default 0,                                     -- Счетчик детей у текущего родителя
       HNames      Char(126) character set win1251,           -- текст, кторый отображаетшь в веточке
       H....             .....);                                                         -- остальное по вкусу
Commit;
After table TreeHard add foreign key (HParend) references TreeHard on update cascade;
Commit;


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

Для отображения делаешь выборку записей , у который родитель (HParent) = 0 - это будет корень
А дальше раскрываещь веточку за веточкой.
Все действия с кнопочками - добавить удалить, перенести - прежде всего нужно рассматривать как запросы к БД

Вообще я сейчас заканчиваю ряд статей по деревьям - их достаточно много - через месяц будут выложены на сайте
www.az-design.ru

Андрей
  Вверх
Dynamic
Дата 10.6.2005, 18:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 372
Регистрация: 5.7.2004
Где: Салехард

Репутация: 2
Всего: 15



Цитата
Как сделать чтобы в одной таблице, по выбору, подключались разные базы данных ?

Если ты имеешь ввиду DBGid, то просто подключи его через xxQuery и меняй запросы.


--------------------
Было бы о чем молчать, а уж что сказать – всегда найдется...
PM MAIL WWW   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.0517 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.