Поиск:

Ответ в темуСоздание новой темы Создание опроса
> дерево с помощью Ehlib 
:(
    Опции темы
santilaas
Дата 23.4.2006, 16:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Народ, кто-нибудь работал с древовидными таблицами с помощью EhLib. Как я понял используются компоненты DBGridEh и MemTableEh!? А как их связать, чтобы все работало как надо? 


--------------------
[
PM MAIL   Вверх
Dynamic
Дата 24.4.2006, 07:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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





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


Опытный
**


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

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



santilaas, вам не кажется что делфёвый компанент EhLib должен обсуждатся в теме делфи ну никак не СУБД InterBase/FireBird?!  

Это сообщение отредактировал(а) Dimyan - 24.4.2006, 08:12


--------------------
Как хорошо ничего не делать, а потом еще немного отдохнуть :)
PM MAIL ICQ   Вверх
santilaas
Дата 28.4.2006, 14:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Я конечно, извиняюсь, что не туда залез, но я уверен, что именно здесь мне хоть как-то да помогут. Ведь многие из тех, кто работает с СУБД InterBase/FireBird, используют EhLib-ы.

И коль уж я здесь, может кто поможет.

А насчет этой ссылки:http://www.delphikingdom.com/asp/viewitem.asp?catalogid=488  - мне нужно именно через EhLib-ы.  
  

Это сообщение отредактировал(а) santilaas - 28.4.2006, 15:45


--------------------
[
PM MAIL   Вверх
santilaas
Дата 30.4.2006, 13:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Firebird 1.5, FibPlus5.2 
В общем, методом "научного тыка" я дошёл вот до чего:

Есть таблица иерархического типа:
Код

CREATE TABLE PRIMER (
    KOD              integer NOT NULL,
    KOD_PARENT       integer NOT NULL,
    NAME             VARCHAR(25) NOT NULL,
    CONSTRAINT pk primary key(kod))

В DataModule для этой таблицы поместил и связал DataSetPrimer и DataSourcePrimer (в общем это как обычно).

На самой форме поместил: 
DataSetDriverEh (
  • ProviderDataSet = DataModule.DataSetPrimer
  • KeyFields = KOD
MemTableEh
  • DataDriver = DataSetDriverEh 
  • MasterSource = DataSourcePrimer
  • в TreeList поставил все в True, KeyFieldName = KOD, RefParentFieldName = KOD_PARENT
DataSource
  • DataSet = MemTableEh
DBGridEh
  • DataSource = DataSource
Вроде все правильно отображается (иерархия показана как надо).

Да кстати,DataSetPrimer и MemTableEh активизирую при событии onCreate формы 

Вопрос: Как теперь на этой форме организовать добавление, изменение и у даление записей???
Когда ставлю, соответственно MemTableEh.Append, MemTableEh.Edit, MemTableEh.Delete, все как-то странно работает, удалять-то удаляет, вот только у меня после удаления срабатывает триггер, удаляющий все дочерние узлы удаляемого объекта - а в DBGridEh-е это не отображается - только после перезапуска приложения.
При добавлении, изменении другой косяк - чисто визуально всё добавляет (притом там, где нужно), но при переходе на другую строку (т.е. при попытке запостить запись), приложение просто тупо закрывается, а данные никуда не сохраняются. - ПРИЧЁМ это происходит, что называется, и в Design-time(Delphi6 просто отрубется) и run-time (отрубается приложение)

Помогите, люди добрые, мож что не так ставлю - надеюсь кто-нибудь работал с этими компонентами. 

Это сообщение отредактировал(а) santilaas - 1.5.2006, 07:02


--------------------
[
PM MAIL   Вверх
Dynamic
Дата 2.5.2006, 06:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(santilaas @  28.4.2006,  14:40 Найти цитируемый пост)
мне нужно именно через EhLib-ы.

В статье описывается пример отображения для любого грида, в т.ч. и DBGridEh (с мемтабле не работал, поэтому ничего про него не скажу)
 


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


Опытный
**


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

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



В общем я более менее разобрался с MemTableEh 
Единственное чего не могу догнать - это как сделать следующее:
Добавляю запись в DBGridEh (связанный с DataSource (а он связан с MemTableEh)) методом Append; и новая запись как бы добавляется в конец списка, независимо от того на каком родителе стоял указатель, затем указываю код родителя и запись устанавливается на нужное место в иерархии.
Вопрос: как сделать, чтобы запись изначально ставилась в ветке родителя? 


--------------------
[
PM MAIL   Вверх
Dynamic
Дата 15.5.2006, 05:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



здесь как минимум 2 варианта:
1. Добавлять запись в БД и сразу же вставлять в нужное место дерева
2. Добавлять запись, запоминать ее ID, перестроить дерево заново и спозиционировать на ID 


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


Опытный
**


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

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



Цитата

здесь как минимум 2 варианта:
1. Добавлять запись в БД и сразу же вставлять в нужное место дерева
2. Добавлять запись, запоминать ее ID, перестроить дерево заново и спозиционировать на ID

- варианты наметить не проблема - проблема, - как сделать, чтобы пустая строка, выделяемая под новую запись, вставала сразу под родителем (т.е. той записью, на которой был указатель до нажатия кнопки), как это сделать? По-любому надо какое-то свойство поставить или строчку кода написать!
НО Что именно писать? 
Решение должно быть по-любому, и думаю - простое.

Какие будут идеи? 


--------------------
[
PM MAIL   Вверх
Dynamic
Дата 16.5.2006, 05:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(santilaas @  15.5.2006,  19:27 Найти цитируемый пост)
Решение должно быть по-любому, и думаю - простое.


Цитата(santilaas @  15.5.2006,  04:30 Найти цитируемый пост)
методом Append


Цитата(santilaas @  15.5.2006,  19:27 Найти цитируемый пост)
Какие будут идеи?  


Попробуй Insert

 


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


Опытный
**


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

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



Да уж, как говорится: "а слона я и не приметил".
Делаю вставку, а про Insert даже не подумал.
Так что спасибо, Dynamic  smile , а то я бы ещё долго думал над очевидными вещами.

Теперь новая строка под запись добавляется, но не под родителем, а над ним - но это уже так сделан 
MemTableEh (когда в Design-time добавляю,- запись также ставится над родителем) 
- значит чтобы запись добавлялась под родителем - это уже вопрос к разработчикам и 
сопроводителям EhLib,
- они надеюсь бывают на форуме.?!  


--------------------
[
PM MAIL   Вверх
Dynamic
Дата 17.5.2006, 05:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(santilaas @  16.5.2006,  15:14 Найти цитируемый пост)
они надеюсь бывают на форуме.?!   


вряд ли
 


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


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

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



для построения дерева нужно использовать MemTableEh
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "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.1308 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


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

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