- •Оглавление
- •Часть 1. Краткое описание Delphi 8
- •Часть 2. Технология ado для баз данных access 186
- •9.1. Общие сведения 289
- •Введение
- •Часть 1. Краткое описание Delphi
- •1. Работа со средой delphi
- •1.1. Ознакомление с delphi
- •1.2. Вкладка дизайнера формы (design)
- •1.3. Вкладка редактора кода программы
- •1.4. Окно object inspector
- •1.5. Окно project manager
- •1.6. Окно палитры инструментов
- •1.7. Создание первого проекта приложения
- •1.8. Сохранение проекта
- •1.8. Сохранение проекта
- •1.9. Компиляция
- •2. Основа языка delphi
- •2.1. Основные понятия языка
- •2.1.1. Элементы языка
- •2.1.2. Пример простой программы
- •2.1.3. Типы данных
- •2.1.4. Операции и выражения
- •2.1.5. Стандартные функции
- •2.1.6. Ввод и вывод на дисплей
- •2.1.7. Оператор присваивания
- •2.2. Операторы языка паскаль
- •2.2.1. Составной оператор
- •2.2.2. Условный оператор
- •2.2.3. Сложные условия
- •2.2.4. Оператор выбора case
- •2.2.5. Оператор цикла for
- •2.2.6. Оператор цикла while
- •2.2.7. Оператор цикла repeat
- •2.2.8. Вложенные циклы
- •2.2.9. Прочие операторы
- •2.3. Общая структура программы
- •2.3.1. Перечень разделов программы
- •2.4. Массивы
- •2.4.1. Одномерные массивы
- •2.4.2. Сортировка массивов и поиск элемента в массиве
- •2.4.3. Многомерные массивы
- •2.5. Функции и процедуры
- •2.5.1. Описание функций
- •2.5.2. Обращение к функции
- •2.5.3. Процедуры
- •2.5.4. Параметры-значения и параметры-переменные
- •2.5.5. Локальные и глобальные переменные
- •2.5.6. Pекурсия
- •2.6. Строки символов
- •2.6.1. Задание строк
- •Var имя: string[длина];
- •2.6.2. Функции и процедуры для обработки строк
- •2.7. Порядковые типы данных
- •2.7.1. Перечисляемый тип данных
- •2.7.2. Интервальный тип данных
- •2.7.3. Порядковые типы данных
- •2.7.4. Дополнение:тип данных tDateTime (дата-время)
- •2.8. Множества
- •2.8.1. Значения типа множество
- •2.8.2. Операции на множествах
- •2.9. Записи
- •2.9.1. Поля записи
- •2.9.2. Оператор with
- •2.9.3. Последовательный поиск в массиве записей
- •2.9.4. Двоичный поиск в массиве записей
- •2.10. Файлы
- •2.10.1. Основные свойства файлов
- •2.10.2. Типизированные файлы
- •2.10.3. Текстовые файлы
- •2.10.4. Поиск файлов
- •2.11. Динамическая память
- •2.11.1. Динамические переменные и указатели
- •2.11.2. Динамические списки
- •2.11.3. Деревья
- •2.12. Программные модули
- •2.12.1. Модули, формируемые пользователем
- •2.12.2. Стандартные модули
- •2.12.3. Примеры программ
- •3. Главная форма
- •3.1. Свойства главной формы
- •3.2. События главной формы
- •4. Описание некоторых компонентов
- •4.1. Компонент tpanel (панели)
- •4.2. Компонент tbutton (кнопка)
- •4.3. Дополнительные кнопки
- •4.4. Компонент tlabel (надписи)
- •4.5. Компонент tedit (Строки ввода)
- •4.6. Компонент тМето (многостроч. Поле ввода)
- •4.7. Свойства и методы класса tstrings
- •4.8. Компонент checkbox (флажок)
- •4.9. Компонент tradiobutton (кнопки выбора)
- •4.10. Компонент MainMenu (главное меню программы)
- •4.11. Компонент timage
- •4.12. Компонент tstringgrid (сетка)
- •4.13. Компонент ttimer(таймер)
- •5. Отладка программ
- •5.1. Типы ошибок
- •5.2. Отладка программы
- •5.2.1. Трассировка программы
- •5.2.2. Точки останова программы
- •5.2.3. Наблюдение значений переменных
- •Часть 2. Технология ado для баз данных access
- •6. Создание баз данных access
- •6.1. Определение понятия баз данных
- •6.2. Интерфейс программы access
- •6.3. Создание базы данных в access 2007
- •6.3.1. Создание двухтабличной базы данных
- •6.3.2. Создание базы данных с вычисляемыми полями
- •6.4. Выбop формата для новой базы данных
- •6.5. Создание пустой базы данных
- •6.6. Открытие и закрытие базы данных
- •6.7. Создание таблиц в режиме конструктора
- •6.7.1. Выбор первичного ключа
- •6.7.2. Изменение полей и таблиц
- •6.7.3. Копирование полей
- •6.7.4. Перемещение полей
- •6.7.5. Удаление полей
- •6.7.6. Операции с таблицами
- •6.8. Создание базы данных в access 2003
- •6.9. Установление связей между таблицами
- •6.10. Обеспечение целостности записей в базе данных
- •6.11. Редактирование и удаление связей
- •7. Система доступа к данным ado
- •7.1. Общие сведения
- •7.2. Компонент adoConnection
- •7.2.1. Свойства компонента adoConnection.
- •7.2.2. Методы компонента adoConnection
- •7.3.Компонент аdоТable
- •7.3.1. Свойства компонента tadoTable
- •7.3.2. Методы компонента tadoTable
- •7.4. Компонент adoQuery
- •7.5. Компонент adoDataSet
- •7.5.1.Свойства компонента adoDataSet
- •7.5.2. Методы компонента adoDataSet
- •7.5.3. Cобытия компонента adoDataSet
- •7.6. Компонент DataSource
- •7.7.Комнонент DataGrid
- •7.7.1 Cвойства компонента DataGrid
- •7.7.2. Методы и события компонента DataGrid
- •7.8. Компонент adocommand
- •8. Управление базами данных
- •8.1. Приложение для управления базами данных
- •8.2. Свойства полей базы данных
- •8.3. Редактирование базы данных
- •8.4. Сортировка данных
- •8.5. Поиск данных в базе
- •8.5.1. Фильтрация данных в базе
- •8.5.2. Нахождения информации методом Locate
- •9.1. Общие сведения
- •9.2. Основные операторы запроса
- •9.2.1. Агрегатные функции
- •9.2.2. Подзапросы
- •9.3. Операторы наполнения баз данных sql
- •9.3.1. Ввод значений
- •9.3.2. Удаление значений
- •9.3.3. Изменение значений
- •9.4. Операторы создания баз данных sql
- •9.4.1. Команда создания таблицы.
- •9.4.2. Первичные ключи таблицы
- •9.4.3. Индексы таблицы
- •9.4.4. Добавление в таблицу новых столбцов
- •10. Реализация sql- запросов
- •10.1. Компонент tadoQuery для sql- запросов
- •10.2. Форма для реализация sql-запроса
- •11. Генератор отчетов Quick Reports
- •11.1.Описание Quick Reports
- •11.2. Печать записи с помощью Quick Reports
- •11.3. Печать таблиц с помощью Quick Reports
- •394026 Воронеж, Московский просп., 14
7.5.2. Методы компонента adoDataSet
Метод Open открывает набор данных, а также обеспечивает выполнение SQL-запроса.
Метод Close закрывает набор данных.
Метод FilterOnBookmarks(Bookmarks: array of const) производит фильтрацию по существующим закладкам, которые были ранее установлены на необходимых записях. Вызов метода FilterOnBookmarks влечет за собой автоматическую очистку свойства Filter и присвоения значения fgUnassigned свойству FilterGroup (т. е. фильтр не задан).
Метод UpdateBatch(AffectRecords: TAffectRecords = arAII) применяется для окончательной фиксации изменений в физической базе данных.
Метод CancelBatch(AffectRecords: TAffectRecords = arAII) предназначен для отмены всех сделанных изменений, не сохраненных методом UpdateBatch.
Применение последних двух методов связано с тем, что наборы данных ADO используют локальный кэш на клиентской стороне. В этом кэше хранятся данные и сделанные клиентом изменения, что позволяет не передавать их немедленно источнику данных, а накапливать и затем сохранять сразу целую группу модифицированных записей.
При этом положительным аспектом является то, что благодаря описанной возможности повышается скорость работы. Отрицательный момент состоит в том, что пока изменения находятся на стороне клиента, они недоступны другим пользователям.
Для того чтобы подобное кэширование изменений стало возможным, должны быть выполнены следующие условия:
в наборе данных должен быть установлен клиентский курсор, т. е. свойству CursorLocation нужно присвоить значение clUseClient;
курсор должен быть статическим, поэтому свойству CursorType устанавливается значение ctStatic;
свойство LockType должно быть равно ItBatchOptimistic, что определяет тип блокировки записей.
Установка перечисленных свойств указанным образом переводит набор данных в режим групповых операций и позволяет использовать методы UpdateBatch и CancelBatch.
Оба эти метода имеют параметр AffectRecords, определяющий, к каким записям будут применяться операции сохранения или отмены изменений.
Данный параметр может принимать одно из четырех значений:
агАll - действие метода распространяется на все записи набора данных;
arAllChapters - метод применятся ко всем записям текущего набора данных, а также всех подчиненных наборов данных;
arCurrent - метод выполняется только для текущей записи;
arFiltered - метод работает с записями из активного фильтра.
7.5.3. Cобытия компонента adoDataSet
Основными событиями компонента ADODataSet являются следующие:
OnFetchComplete Возникает после обновления набора данных
OnFetchProgress Генерируется в процессе обновления, если набор данных работает в асинхронном режиме
OnWillMove Происходит перед перемещением курсора по набору данных
OnMoveComplete Возникает после завершения перемещения курсора в наборе данных
OnEndOfRecordSet Происходит при достижении курсором последней записи набора данных
OnWillChangeRecord Генерируется до изменения записи набора данных
OnRecordChangeComplete Вызывается после изменения записи набора данных
Событие OnFetchComplete имеет параметр Error, который представляет собой ссылку на объект ошибки ADO, если она возникла.
Рассмотрим важнейшие свойства объекта ошибки ADO:
Description - возвращает описание ошибки, передаваемое из объекта, в котором произошла данная ошибка;
SQLState - содержит текст команды, вызвавшей ошибку;
NativeError - позволяет узнать код ошибки, который передается из объекта, где данная ошибка произошла.
Все перечисленные выше свойства объекта ошибок ADO являются свойствами только для чтения.