Текущая запись TIBDataSet
Добавлено: 28 апр 2005, 05:48
Извиняюсь за возможную наивность вопроса
, просто начал с IB недавно работать. Также имею наглость просить не советовать FIBPlus. Допускаю, что вещь замечательная, но за неимением гербовой пишем на клозетной. И вообще, не очень люблю добавочные компоненты, кроме EhLib и Rx. Итак:
Имеем TIBDataBase, TIBDataSet, TIBTransaction, DataSource и DBGridEh. TIBDataSet является мастером по отношению к другим TIBDataSet (master-detal по полю ID). Ну это так, на всякий случай говорю. Вряд ли это влияет.
В свойстве TIBDataSet.SelectSQL:
- можно догадаться, что таблица построена по принципу дерева, где есть ID и IDParent. Только в каждом отборе по уровню дерева 1, 2 или 3 (уровни сидят в поле TREELEVEL) добавляется и уровень 0 - строчка, добавленная при создании базы и имеющая в поле "Name" всего две точки "..". При отборе эти две точки из-за сортировки всегда будут вверху, как в списке WindowsCommander.
При DblClick на строке DbGridEh проверяется уровень, и осуществляется отбор по этому уровню плюс опять же нулевой уровень, чтобы две точки опять оказались наверху. Если даблклик производится по верхней строчке (по двум точкам), то производится "выход наверх", то-есть отбор по предыдущему уровню.
Но все это поэзия. А вот проза в том, что при даблклике на гриде почему-то возвращается всегда значение верхней строки, независимо от того, на какой строке мы щелкаем.
Вчера весь вечер прощелкал впустую. Помогите, а?

Имеем TIBDataBase, TIBDataSet, TIBTransaction, DataSource и DBGridEh. TIBDataSet является мастером по отношению к другим TIBDataSet (master-detal по полю ID). Ну это так, на всякий случай говорю. Вряд ли это влияет.
В свойстве TIBDataSet.SelectSQL:
Код: Выделить всё
SELECT * from THEMAIN WHERE (TREELEVEL = 0 OR TREELEVEL = 2)
ORDER BY NAME /*сортировка по стринговому полю "Name"*/
При DblClick на строке DbGridEh проверяется уровень, и осуществляется отбор по этому уровню плюс опять же нулевой уровень, чтобы две точки опять оказались наверху. Если даблклик производится по верхней строчке (по двум точкам), то производится "выход наверх", то-есть отбор по предыдущему уровню.
Но все это поэзия. А вот проза в том, что при даблклике на гриде почему-то возвращается всегда значение верхней строки, независимо от того, на какой строке мы щелкаем.
Вчера весь вечер прощелкал впустую. Помогите, а?