Форум: "Базы";
Текущий архив: 2005.02.27;
Скачать: [xml.tar.bz2];
ВнизКак реализовать PageControl с БД Найти похожие ветки
← →
igor_w (2005-01-25 10:25) [0]Я ставлю на каждую страницы PageControl отдельную базу, при просмотре базы её как-бы не видно, щелкаем правой кнопкой мыши база появляется. Как сделать чтобы она запускалась сразу при переходе на другую страницу?
← →
Sergey13 © (2005-01-25 10:38) [1]Написать соответствующий обработчик. И, видимо, разобраться с терминологией (база<>таблица).
← →
msguns © (2005-01-25 11:00) [2]А куда запускаются базы-то ? В космос ?
← →
igor_w (2005-01-25 12:22) [3]Да не в космос. Просто нужно чтобы при запуске программы сразу бы открывалась БД, затем, при переходе на другой лист PageControl
открывалась другая БД и т.д. А получается, запускаем программу и
вместо данных в базе пустое поле, щелкаем правой кнопкой мыши данные появляются. Нужно чтобы не щелкать мышкой.
← →
Плохиш © (2005-01-25 12:25) [4]
>igor_w (25.01.05 12:22) [3]
Хм, тут знаешь ли код писать в программе надо.
← →
msguns © (2005-01-25 13:15) [5]Во-первых, надо как-то все ж таки определиться: что такое "база" и что такое "открываться".
Если БД одна (рискну предположить, что это локалка типа парадокс или дибэйз), т.е. каталог для всх "баз" один и тот же, то под словом "база" имеется в виду таблица или запрос. В этом случае БД всего одна, а таблиц (запросов) может быть много и некоторые из них мы желаем отображать в гридах, помещенных в пэйджконтролы.
Если так, то открывать БД нужно только один раз,- обычно в начале работы приложения (можно в событии OnShow главной формы), а все компоненты, с помощью которых мы будем отображать таблицы (в миру датасеты) "отошлем" к единому TDataBase.
Итак, у нас есть 2 способа "открытия" датасетов:
1. Ламерский и ресурсоемкий: При открытии БД (см. выше) тут же открываем и все датасеты. В этом случае мы пюлюем на всякие там события и вообще программинг, т.к. при листании страниц видим уже открытые датасеты в гридах
2. Продвинутый и экономный: Все НД вообще-то закрыты и не гребут ресурсы. Но мы вынуждены воспользоваться событиями пэйджконтрола, а именно теми из них, которые возникают при переходе с одной страницы на другую (см.хэлп). Дальше ясно: НД, отображаемый в теряющей фокус странице закрываем, получающей - открываем. Во избежание потери при переоткрытии НД текущей записи пользуемся закладками. Но надо кодить.
Есть, конечно, еще другие способы, например, отображение любой таблицы через отдельную дочернюю форму, полученную из написанного базового класса и имеющую минимум кода. Этот способ позволяет просматривать несколько НД (таблиц - для ламера) одновременно, причем узер может расположить окошки на экране как ему удобно, например, для сравнения и легко перемещать курсор между этими таблицами. А если еще написать универсальную панель управления, с помощью которой можно редактить любую из отображаемый "дочками" таблицу, то... Но это уже не годится, видимо, т.к. требует не только знания основ БД, но и понимания ООП. Что, видимо, в данном случае, отсутствует напрочь.
← →
Жук © (2005-01-25 13:24) [6]
> msguns © (25.01.05 13:15) [5]
"Тебе бы, Серёга, книжки писАть" (почти(с))
← →
igor_w (2005-01-28 15:45) [7]Спасибо всем! Розобрался.
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2005.02.27;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.053 c