Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Размещение в модуле данных невизуальных компонентСодержание книги
Поиск на нашем сайте
для доступа к БД и ее таблицам
Разместим в модуле данных один экземпляр компоненты TDatabase со страницы BDE. У компоненты TDatabase следует установить следующие свойства: * Database Name -имя БД, его следует набрать - через это имя с компонентой TDatabase будут связываться другие невизуальные компоненты; * Connected – признак, определяющий активна ли база данных. Его задают равным false при разработке программы, а при выполнении программы, в момент активизации главной формы, задают равным true. Также можно активизировать БД, вызвав метод компоненты Open(), а в момент закрытия главной формы – метод компоненты Close(); * DriverName – выбираетсязначение STANDARD; * В свойстве Params через редактор параметров следует задать строку PATH путь к таблицам БД
В модуле данных будут размещаться экземпляры компоненты TTable (таблицы) и связанные с ними экземпляры компоненты TDataSource, а также экземпляры компоненты TQuery (запросы) и связанные с ними экземпляры компоненты TDataSource. Компонента TDataSource расположена на странице Data Access и представляет собой промежуточное звено для связи невизуальных компонент TTable и TQuery с визуальными компонентами, размещаемыми на формах. Для компоненты TTable нужно указать свойства: · DatabaseName - имя БД, установленное в компоненте TDatabase, оно выбирается из списка доступных имен БД; · TableType – тип таблиц БД, выбирается ttParadox; · TableName, выбрав имя файла с расширением db из числа созданных таблиц. Кроме того, для полей таблицы можно задать условия контроля вводимых значений, которые будут проверяться на формах ввода. Это свойство Constraints. При добавлении каждого условия устанавливаются свойства: · CustomConstraint – некоторое условие, аналогичное where в свойстве SQL компоненты TQuery; · Error Message – текст сообщения, выдаваемого при возникновении ошибки: Свойство Active изначально равно false (таблица не открыта); она будет открываться вызовом метода компоненты Open() при показе соответствующей формы, а закрываться – вызовом метода компоненты Close() при закрытии формы. С каждой компонентой TTable должна быть связана компонента TDataSource, в свойстве DataSet которой нужно выбрать имя соответствующей таблицы. Для отображения на формах полей из нескольких связанных таблиц необходимо использовать компоненты TQuery. Для экземпляров компонент TQuery должны быть заданы свойства:
· DatabaseName - имя БД, установленное в компоненте TDatabase, оно выбирается из списка доступных имен БД; · SQL -для задания оператора языка SQL, который может вернуть набор данных (НД), то есть группу записей из одной или нескольких таблиц БД. Например, для просмотра таблицы class, в которой желательно видеть названия классов и названия предметов, изучаемых в этом классе, свойство SQL должно быть таким SELECT * FROM CLASS C, PREDMET P WHERE C.NP=P.NP В этом примере NP – уникальный номер предмета (его ключ) в таблице PREDMET и поле в таблице CLASS для связи с предметами. Свойство Active изначально равно false (запрос не открыт); он будет открываться вызовом метода компоненты Open() при показе соответствующей формы, а закрываться – вызовом метода компоненты Close() при закрытии формы. Для каждой компоненты TQuery и TTable необходимо сделать доступными все поля. Для этого, сделав текущей нужную компоненту, следует нажать правую кнопку мыши и выбрать пункт контекстного меню Fields Editor. Появится окно:
Для проверки правильности установки всех свойств компоненты TQuery следует при разработке проекта присвоить его свойству Active значение, равное true, что соответствует открытию соответствующего НД. При правильной установке всех свойств это возможно сделать, в противном случае возникают сообщения об ошибках. Для нашего примера модуль данных будет иметь следующий вид:
НД может находиться в одном из следующих состояний (оно определяется значением свойства State связанной компоненты TDataSource), из каждого его можно перевести в некоторое другое (табл. 4) Таблица 4
Компонента TTable может обрабатываться методами для последовательной обработки НД.
Для этой цели имеются свойства и методы компоненты TTable: bool Eof Проверка, достигнут ли конец НД (свойство); First(); Установка указателя на первую запись НД; Next(); Переход к следующей записи НД; Last(); Установка указателя на последнюю запись НД; bool Locate(константа – имя поля или полей, по которым идет поиск, поле или массив полей типа Variant со значениями полей, поле типа TLocateOptions с режимом поиска); Поиск в НД записи, поля которой совпадают с указанными значениями, и установка ее в качестве текущей. Кроме того, компоненты TQuery и TTable имеют метод FieldByName, аргументом которого является строка с именем поля; метод возвращает значение поля для текущей записи. Пример: Variant V; TLocateOptions Opts; Opts.Clear(); //Очистка режима поиска V=DM->CHI_CL->FieldByName("ncl")->AsInteger; //Запоминание значения поля текущей записи DM->CL->First();//Установка таблицы на начало //Поиск в таблице записи с определенным значением ключа DM->CL->Locate("ncl",V,Opts); Пример поиска по совпадению значения двух полей: TLocateOptions Opts; Opts.Clear(); Opts << loPartialKey; Variant locvalues[2]; locvalues[0] = Variant("Sight Diver"); locvalues[1] = Variant("P"); CustTable->Locate("Company;Contact", VarArrayOf(locvalues, 1), Opts); Функция VarArrayOf возвращает одномерный массив типа Variant с элементами, заданными первым араметром. Второй параметр на 1 меньше числа значений в массиве. Создание главной формы Главная форма будет содержать меню с пунктами, соответствующими выводу форм просмотра таблиц и форм вывода отчетов (выходных документов). Для активизации формы следует выполнить вызов метода этой формы ShowModal(): имя формы->ShowModal(); Для того, чтобы главная форма имела доступ к компонентам, расположенным в модуле данных, следует при создании этой формы выполнить пункт меню File, Include Unit Hd r и выбрать модуль, соответствующий модулю данных. После этого все компоненты модуля данных будут доступны в главном модуле. В событии OnShow следует выполнить открытие БД: Имя модуля данных->имя компоненты TDatabase->Open(); В событии OnClose следует выполнить закрытие БД: Имя модуля данных->имя компоненты TDatabase->Close();
|
||||||||||||||||||||||||
Последнее изменение этой страницы: 2016-12-16; просмотров: 316; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.142.198.108 (0.01 с.) |