Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.02.27;
Скачать: CL | DM;

Вниз

Как реализовать 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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.028 c
1-1107951469
Single
2005-02-09 15:17
2005.02.27
Почемуто все время растет память у процесса .. ?????


14-1107791591
Aleksandr
2005-02-07 18:53
2005.02.27
Книги по администратированию Windows 2000 server или 2003


3-1107125560
Solenko
2005-01-31 01:52
2005.02.27
Просмотр помеченных на удаление


1-1108078274
Bobby Digital
2005-02-11 02:31
2005.02.27
Система координат


3-1106727322
Behemoth
2005-01-26 11:15
2005.02.27
Проблема и логинами при приаттачивании базы MSSQL