КАТЕГОРИИ: Архитектура-(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; Просмотров: 586; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |