- •Оглавление
- •Часть 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.2.1. Свойства компонента adoConnection.
Commands - Представляет собой индексированный список команд ADO, которые являются объектами класса TADOCommand
CommandCount - Содержит количество доступных команд ADO
ConnectOptions - Определяет тип подключения: синхронное или асинхронное. Это свойство принимает одно из двух значений:
coConnectUnspecified -синхронное соединение, которое обязательно ожидает результат последнего запроса и только после этого выполняет следующий запрос;
coAsyncConnect - асинхронное соединение, которое дает возможность выполнять новые запросы без ожидания результатов предыдущих запросов
DataSetCount - Показывает количество активных наборов данных, ассоциированных с компонентом ADOConnection
KeepConnection - Если установлено в true, то обеспечивает сохранение соединения в открытом состоянии в случае, если в текущий момент времени к компоненту ADOConnection не подключен ни один активный набор данных. Если же данное свойство имеет значение false, то соединение будет немедленно разорвано, сразу же после закрытия последнего связанного с ним набора данных
LoginPrompt - Это свойство отвечает за вопрос. Будет ли при открытии соединения отображаться специальное диалоговое окно, в котором пользователь должен вводить имя и пароль доступа. Рекомендуется установить данное свойство в false, если имя пользователя и пароль не используются
Mode С помощью этого свойства можно установить операции, доступные для соединения (только чтение, только запись, запись и чтение и т. д.). Обычно настройка разрешенных операций доступа к данным производится на этапе проектирования на вкладке Дополнительно окна Свойства связи с данными
Рассмотрим еще два свойства компонента ADOConnection.
Свойство State позволяет узнать текущее состояние соединения. Оно может иметь одно из следующих значений:
stClosed - соединение неактивно и закрыто;
stOpen - соединение открыто, но неактивно;
stConnecting - выполняется подключение к базе данных;
stExecuting - реализуется обращение к базе данных;
stFetching - происходит получение данных из БД.
Свойство DataSets[Index: Integer] представляет собой индексированный массив всех активных наборов данных, связанных с компонентом ADOConnection.
Активным считается тот набор данных, который открыт в текущий момент времени.
Это свойство удобно использовать для открытия всех связанных наборов данных при активизации соединения, например, используя процедуру:
procedure Forml.ADOConnectionl.AfterConnect(Sender: TObject);
begin
for i:= 0 to ADOConnectionl.DataSetCount - 1 do
ADOConnectionl.DataSets[i].Open;
end;
Аналогичным образом, в обработчике события OnBeforeDisconnect можно обеспечить закрытие связанных наборов данных перед отключением соединения (события компонента ADOConnection рассмотрены ниже).
7.2.2. Методы компонента adoConnection
Метод Execute применяется для выполнения команд ADO без использования других компонентов (таких, как АООСоттаnd).
Этот метод является перегружаемым и имеет два варианта описания в виде функции:
function Execute(const CommandText: WideString;
const CommandType: TCommandType = cmdText;
const ExecuteOptions: TExecuteOptions = []): _RecordSet;
overload;
или в виде процедуры:
procedure Execute(const CommandText: WideString;
var RecordsAffected: Integer; ExecuteOptions:
TExecuteOptions = [eoExecuteNoRecords]);
overload;
Функция Execute вызывается, если результатом выполнения команды ADO является набор записей.
Процедура Execute выполняет команду ADO в случае, когда в результате не возвращаются никакие записи.
В этом методе параметр CommandText содержит текст команды ADO. Параметр CommandType более подробно рассмотрен ниже.
Параметр RecordsAffected показывает количество записей, обработанных командой ADO.
Параметр ExecuteOptions задает условия выполнения команды и может принимать такие значения:
eoAsyncEcexute — команда выполняется асинхронно;
eoAsyncFetch - команда асинхронно получает необходимые записи;
eoAsyncFetchNonBlocking - команда выполняется, не блокируя поток;
eoEcexuteNoRecords - команда не возвращает записей.
При использовании компонента соединения ADOConnection нередко возникает необходимость создавать обработчики следующих событий:
OnBeforeConnect - возникает перед открытием соединения;
OnAfterConnect - генерируется после открытия соединения;
OnBeforeDisconnect - возникает перед закрытием соединения;
OnAfterDisconnect - происходит после закрытия соединения;
OnWillConnect - возникает непосредственно перед реальным открытием соединения после получения соответствующего подтверждения от провайдера данных. Это событие будет сгенерировано, после того как источник данных принял команду для выполнения и сообщил об этом компоненту соединения, но перед тем, как произойдет собственно выполнение команды;
OnExecuteComplete - возникает после выполнения команды ADO.