КАТЕГОРИИ: Архитектура-(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) |
Поддержка BDE в VCL
Для создания приложений, работающих с БД через BDE, в VCL предусмотрена группа компонентов, расположенная на закладке BDE палитры компонентов. Из представленных 8 компонентов для нас сейчас наибольший интерес представляют 2, а именно Database и Table. Компонент Database представляет собой компонент, инкапсулирующий в себе базу данных в целом. С его помощью можно контролировать наличие доступа к базе данных из приложения, следить за ходом транзакций, а так же подключаться к клиент-серверным БД. Свойства этого компонента приведены в таблице 18.2.
Пожалуй, наиболее важным свойством является DatabaseName: указав в качестве значения этого свойства один из уже определенных в BDE псевдонимов, мы получим готовый к использованию компонент. Еще одно свойство - Connected - отвечает за непосредственную установку связи с БД. Таким образом, указав в качестве значения свойства DatabaseName "DATA1", и установив свойство Connected в истину, мы подключимся к БД. Довольно интересной особенностью компонента Database является возможность создания псевдонимов БД, действующих в рамках создаваемого приложения. Прежде всего, можно указать в качестве значения свойства Alias то же значение DATA1, выбрав его из списка, а в качестве DatabaseName указать какое-либо произвольное значение (например, MyData). Таким образом, для других компонент, имеющих свойство DatabaseName можно будет указывать MyData в качестве значения этого свойства. В то же время, если бы у нас не был определен псевдоним DATA1, или же по каким-либо причинам нам не хотелось бы его использовать, то мы могли бы "с нуля" создать псевдоним для данного приложения. Для этого потребуется указать те же параметры, что и при создании псевдонима средствами BDE Administrator, а именно тип драйвера, путь к БД и собственно псевдоним. Код получится примерно таким: Database1.DatabaseName:='MyData1'; // псевдоним Database1.DriverName:='STANDARD'; // драйвер Paradox Database1.Connected:=true; // активируем компонент Database1.Directory:='C:\Data'; // устанавливаем путь к файлам данных Вместе с тем такое свойство, как DatabaseName предпочтительно все же задавать не во время выполнения, а в режиме разработки через инспектор объекта. Это позволит ссылаться на БД из других компонент, указывая в их свойстве DatabaseName, так же уже на этапе визуального проектирования приложения. Одним из таких компонент, имеющим свойство DatabaseName, как раз и является Table. Если Database представляет собой базу данных в целом, то Table - это представление единичной таблицы из БД. Следует сразу отметить, что Table может обращаться к таблицам БД как через посредство компонента Database, ссылаясь на определенное в нем свойство DatabaseName, так и напрямую, если в свойстве DatabaseName компонента Table указать один из определенных в BDE псевдонимов. Разумеется, компонент Table имеет и другие свойства - они приведены в таблице 18.3.
Здесь следует оговориться, что на самом деле некоторые свойства лишь унаследованы компонентом Table от своих предков. Соответственно, мы можем их встретить и в других компонентах, связанных с БД. В частности, это свойство Active, унаследованное от класса TDataSet - общего предка всех БД-компонент, предоставляющих непосредственных доступ к данным. От этого же предка происходит и свойство FieldDefs, позволяющее самостоятельно настроить список обрабатываемых полей. А группа свойств, связанных с отбором данных (Filter, Filtered и FilterOptions) являются частью класса TBDEDataSet - наследника класса TDataSet, ориентированного на работу с базами данных посредством драйверов BDE. Остановимся на свойстве FilterOptions, которое содержит 2 флага:
Свойства фильтров используются только при работе с BDE, поскольку в SQL-ориентированных компонентах подразумевается, что отбор данных будет производиться при помощи запросов SQL, что, в общем-то, вполне естественно, учитывая предназначение и возможности самого SQL. ПРИМЕЧАНИЕ Для использования таблицы достаточно указать значения для свойств DatabaseName и TableName. Например, если продолжить пример с созданием псевдонима для компонента Database, то после последней строчки кода, устанавливающей значение для свойства Directory, достаточно добавить: Table1.DatabaseName:='MyData1'; // устанавливаем значение БД на псевдоним Table1.TableName:='Customer'; // в имени таблицы расширение не обязательно Table1.Active:=true; // делаем таблицу подключенной Дальнейшее использование компонента Table чаще всего сводится к тому, что он, представляя собой таблицу БД, позволяет производить над ней ряд манипуляций, включая редактирование данных, перемещение по записям и т.д. Для этого используются методы, которых у компонента Table, с учетом всех наследований, имеется около сотни. Впрочем, многие из них нельзя назвать повседневно необходимыми. Из наиболее востребованных можно отметить методы First и Last, Next и Prior, используемые для навигации по записям таблицы, а так же Append, Delete и Insert, которые используются для добавления и удаления записей. Следует отметить, что все эти методы являются унаследованными от класса TDataSet, что говорит о том, что они имеются и у множества других предназначенных для работы с БД компонент.
Дата добавления: 2015-05-09; Просмотров: 584; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |