Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Компонент Session




 

Компоненты Session осуществляют общее управление связыванием приложения с базами данных. Обычно пользователю не приходится заботиться о компонен­те Session, поскольку Delphi автоматически генерирует объект Session в каждом приложении, работающем с базами данных. На этот объект можно ссылаться через глобальную переменную Session.

Компонент Session имеет много полезных методов и позволяет легко работать с BDE. Приведем простой пример использования некоторых методов Session. Да­вайте построим приложение, позволяющее просматривать любую заданную поль­зователем таблицу в любой заданной им доступной базе данных. Это приложение (рис. 2.7) содержит два выпадающих списка типа TComboBox. Первый из них предназначен для выбора пользователем базы данных, а второй — для выбора таблицы. Кнопка Просмотр предназначена для просмотра выбранной таблицы в компоненте типа TDBGrid, связанном цепочкой ссылок с компонентами DataSourcel и Table 1.

Рис. 2.7. Приложение, позволяющее пользователю выбрать любую доступную базу данных и любую таблицу в ней

 

Чтобы такое приложение функционировало, надо при создании формы загрузить список cbDatabase доступными BDE псевдонимами. Это делается следующим оператором, помещенным в обработчик события OnCreate формы:

 

Session.GetAliasNames(ComboBox1.Items);

 

Этот оператор использует метод GetAliasNames объекта Session, который передает в свой параметр типа TStrings (в данном примере это список cbAlias.Items) перечень псевдонимов баз данных, зарегистрированных в BDE.

При выборе пользователем базы данных в списке cbAlias надо загрузить список cbTable перечнем таблиц выбранной базы данных. Это делается включением в обработчик события OnChange компонента cbAlias операторов:

 

Sesion.GetTableNames(ComboBox1.Text,'',true,false,ComboBox2. Items);

ComboBox2.ItemIndex:=0;

 

Первый из этих операторов использует метод GetTableNames для загрузки в свой последний параметр типа TStrings (в данном примере это список ComboBox2.Items) перечня таблиц базы данных, заданной своим первым параметром (в данном это ComboBox1.Text). Второй параметр метода позволяет задать шаблон, отбирающий имена таблиц. Например, шаблон «р*» отберет имена таблиц, начинающиеся с символа «р». Пустой шаблон, использованный в примере, означает выбор всех таблиц. Третий параметр, установленный в true, означает, что в имена таблиц будут включаться расширение файла (это необходимо для таблиц Paradox и dBase). Четвертый параметр задается равным false для баз данных Paradox и dBase, а для баз, основанных на SQL, этот параметр устанавливается в true, чтобы возвращать таблицы данных и системные таблицы, определяющие структуру данных. Теперь остается ввести в приложение обработчик нажатия кнопки «Просмотр». Этот обработчик может иметь вид:

 

If ComboBox2.Text='' then

begin

ShowMessage('Не задана таблица');

end;

Table1.Active:=false;

Table1.DatabaseName:=ComboBox1.Text;

Table1.TableName:=ComboBox2.Text;

Table1.Active:=true;

end;

 

Этот обработчик просто задает свойства DatabaseName и TableName и компонента Table1 равными выбранным пользователем значениям, и переводит Таble1 в активное состояние.

Откомпилируйте приложение и посмотрите его в работе.

Выше показано использование компонента Session, создаваемого неявно по умолчанию. Вводить явным образом компоненты Session приходится только в многозадачных приложениях, в которых предусмотрено несколько параллельных процессов со своими потоками обмена информацией с базой данных. В таких многопоточных приложениях обычно вводится явным образом по одному компоненту Session на каждый поток, чтобы исключить влияние потоков друг на друга. При явном вводе компонента Session в приложение следует установить свойство SessionName — имя сеанса сетевого соединения, задав в нем произвольный идентификатор, например, s1. После этого в выпадающих списках свойств SessionName компонентов типа TDatabase, ТТаblе, TQuery и т.п. появится введенное вами имя. Выбор соответствующего имени сеанса сетевого соединия этих списков свяжет эти компоненты с соответствующим компонентом Session.

Если в приложении имеется несколько компонентов Session, глобальная переменная Session по-прежнему одна. Она имеет тип TSessionsList и содержит данные о каждом компоненте Session.

 




Поделиться с друзьями:


Дата добавления: 2015-03-29; Просмотров: 554; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.01 сек.