Компоненты для работы с базами данных в Delphi 6: анализ и сравнение TTable и TQuery


Тип работы:  Курсовая работа
Бесплатно:  Антиплагиат
Объем: 18 страниц
В избранное:   

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РЕСПУБЛИКИ КАЗАХСТАН

КАЗАХСКИИ ЭКОНОМИЧЕСКИИ УНИВЕРСИТЕТ ИМ. Т. РЫСКУЛОВА

Компоненты для работы с базами данных:

TTable и TQuery

Выполнил: Тен Валентин

Проверил(а) :

Содержание:

1. Введение. .: 1. Введение. .
1. Введение. .: 2. Компоненты для работы с БД среды Delphi 6 . . .
1. Введение. .:

3. Наборы данных . . .

3. 1 Основные приемы работы с TDataSet

3. 2 Основные свойства, методы и события TDataSet. .

1. Введение. .: 4. Обзор компонента TTable. .
1. Введение. .: 5. Обзор компонента TQuery.
1. Введение. .: 6. Сравнение компонентов TTable и TQuery . . .
1. Введение. .: 7. Заключение. .
1. Введение. .: 8. Приложение
1. Введение. .: Список использованной литературы. . . .

1. Введение

Базами данных (БД) называют электронные хранилища информации, доступ к которым осуществляется с помощью одного или нескольких компьютеров. Обычно БД создается для хранения и доступа к данным, содержащим сведения о некоторой предметной области, то есть некоторой области человеческой деятельности или области реального мира.

Системы управления базами данных (СУБД) - это программные средства, предназначенные для создания, наполнения, обновления и удаления баз данных.

По своей архитектуре СУБД делятся на автономные, файл - серверные, клиент - серверные и многозвенные. В данной курсовой работе будет рассматриваться работа только с автономными СУБД.

Автономные БД являются наиболее простыми. Они хранят свои данные в локальной файловой системе на том компьютере, на котором установлены система управления и машина баз данных, осуществляющая к ним доступ, находится на том же самом компьютере. Сеть не используется.

Автономные базы данных полезны для развития тех приложений, которые распространены среди многих пользователей, каждый из которых поддерживает отдельную базу данных. Это, например, приложения, обрабатывающие документацию небольшого офиса, кадровый состав небольшого предприятия, бухгалтерские документы. Каждый пользователь такого приложения манипулирует своими собственными данными на своем компьютере. Пользователю нет необходимости иметь доступ к данным любого другого пользователя, так что отдельная БД здесь вполне приемлема.

В данной курсовой работе будет приведен пример приложения работающего с автономными БД - “Справочник сотрудника ГИБДД”, Приложение было разработано автором в среде Delphi 6, а сама БД в СУБД Paradox 7. 0.

2. Компоненты для работы с БД среды Delphi 6

Каждое приложение, использующее базы данных, обычно имеет по крайней мере по одному компоненту следующих типов:

  • Компоненты - наборы данных (Data set), непосредственно связывающиеся с базой данных. Для BDE это такие компоненты, какTable, Query, Stored Proc, BDEClientDataSet. Для других технологий имеются аналогичные компоненты наборов данных.
  • Компонент - источник данных (Data source), осуществляющий обмен информацией между компонентами первого типа и компонентами визуализации и управления данными. Таким компонентом являетсяDataSource.
  • Компоненты визуализации данных и управления данными, такие, какDBGrid, DBTExt, DBEditи множество других.

Связь этих компонентов друг с другом и с базой данных можно представить схемой приведенной ниже:

Схема взаимодействия компонентов Delphi с базой данных

3. Наборы данных

Под набором данных (НД) понимается группа записей из одной или нескольких таблиц БД, доступная для компонентов-наборов TTable, TQuery или TStoredProc. Эти компоненты порождены от общего родительского класса TDBDataSet и наследуют все его свойства, методы и события.

Класс TDataSet

TDataSet класс - один из наиболее важных объектов БД. Чтобы начать работать с ним, нужно взглянуть на следующую иерархию:

TDataSet

TDBDataSet

-- TTable

-- TQuery

-- TStoredProc

TDataSet содержит абстрактные методы там, где должно быть непосредственное управление данными. TDBDataSet знает, как обращаться с паролями и то, что нужно сделать, чтобы подключиться к определенной таблице. TTable знает (т. е. уже все абстрактные методы переписаны), как обращаться с таблицей, ее индексами и т. д.

TDataSet - инструмент, который используется например для открытия таблицы, и перемещения по ней. Конечно, не нужно непосредственно создавать объект типа TDataSet. Вместо этого, нужно использовать TTable, TQuery или других потомков TDataSet (например, TQBE) . На наиболее фундаментальном уровне, Dataset это просто набор записей, как изображено на рис. 1

Рис. 1: Любой dataset состоит из ряда записей (каждая содержит N полей) и указатель на текущую запись.

В большинстве случаев DataSet будет иметь прямое, один к одному, соответствие с физической таблицей, которая существует на диске. Однако, в других случаях можно исполнять запрос или другое действие, возвращающие dataset, который содержит либо любое подмножество записей одной таблицы, либо объединение (join) между несколькими таблицами.

3. 1 Основные приемы работы с TDataSet

Открытие и закрытие DataSet

Имеются два различных способа открыть таблицу во время выполнения программы. Можно написать следующую строку кода:

Table1. Open;

Или можно установить свойство Active равное True:

Table1. Active := True;

Нет никакого различия между результатом производимым этими двумя операциями. Метод Open, однако, сам заканчивается установкой свойства Active в True, так что может быть даже чуть более эффективно использовать свойство Active напрямую.

Также, как имеются два способа открыть a таблицу, так и есть два способа закрыть ее. Самый простой способ просто вызывать Close:

Table1. Close;

Или можно написать: Table1. Active := False;

Навигация (Перемещение по записям)

Большой набор методов и свойства TDataSet обеспечивает все, что нужно для доступа к любой конкретной записи внутри таблицы:

Обзор их функциональных возможностей описан ниже в таблице методов класса TDadaSet.

TDataSet. BOF - read-only Boolean свойство, используется для проверки, находится ли курсор в начале таблицы. Свойства BOF возвращает true в трех случаях:

  • После того, как файл был открыт;
  • После того, как вызвался метод TDataSet. First;
  • После того, как не выполнился вызов метода TDataSet. Prior.

Первые два пункта - очевидны. Когда открывается таблица, Delphi помещает курсор на первую запись; когда вызывается метод First, Delphi также перемещает курсор в начало таблицы. Третий пункт, однако, требует небольшого пояснения: после того, как вызывался метод Prior несколько раз, курсор мог добраться до начала таблицы, и следующий вызов Prior будет неудачным - после этого BOF и будет возвращать True.

Следующий код показывает самый общий пример использования Prior, когда курсор попадает к первой записи:

while not Table. Bof do

Table1. Prior;

end;

Цикл будет продолжаться до тех пор, пока вызов Table1. Prior не сможет больше перемещать курсор на предыдущую запись в таблице. В этот момент BOF вернет True и программа выйдет из цикла.

Все сказанное относительно BOF также применимо и к EOF. Другими словами, код, приведенный ниже показывает простой способ пробежать по всем записям в a dataset:

Table1. First;

while not Table1. EOF do

Table1. Next;

end;

EOF возвращает True в следующих трех случаях:

  • После того, как файл был открыт; ;
  • После того, как вызвался метод TDataSet. Last;
  • После того, как не выполнился вызов метода TDataSet. Next

Единственная навигационная процедура, которая еще не упоминалась - MoveBy, которая позволяет переместиться на N записей вперед или назад в таблице. Если необходимо переместиться на две записи вперед, то следует написать следующий оператор:

MoveBy(2) ;

или

MoveBy(-2) ;

Prior и Next - это простые функции, которые вызывают MoveBy.

При использовании этой функции необходимо всегда помнить, что DataSet - это изменяющиеся объекты, и запись, которая была пятой по счету в предыдущий момент, теперь может быть четвертой или шестой или вообще может быть удалена . . .

Поля

В большинстве случаев, когда нужно получить доступ из программы к индивидуальные полям записи, можно использовать одно из следующих свойств или методов, каждый из которых принадлежат TDataSet:

property Fields[Index: Integer] ;

function FieldByName(const FieldName: string) : TField;

property FieldCount;

Свойство FieldCount возвращает число полей в текущей структуре записи. Если необходимо программным путем прочитать имена полей, то используется свойство Fields для доступа к ним:

var

S: String;

begin

S := Fields[0] . FieldName;

end;

Короче говоря, индекс передаваемый в Fields (начинающийся с нуля), и определяет номер поля к которому Вы получите доступ, т. е. первое поле - ноль, второе один, и так далее.

Если Вы хотите прочитать текущее содержание конкретного поля конкретной записи, то используется свойство Fields или метод FieldsByName . Для того, чтобы найти значение первого поля записи, прочитайте первый элемент массива Fields :

S := Fields[0] . AsString;

Предположим, что первое поле в записи содержит номер заказчика, тогда код, показанный выше, возвратил бы строку типа “1021”, “1031” или “2058”. Если нужно получить доступ к этот переменный, как к числовой величине, тогда надо использовать AsInteger вместо AsString. Аналогично, свойство Fields включают AsBoolean, AsFloat и AsDate.

Можно использовать функцию FieldsByName вместо свойства Fields :

S := FieldsByName(‘CustNo’) . AsString;

Как показано в примерах выше, и FieldsByName, и Fields возвращают те же самые данные. Два различных синтаксиса используются исключительно для того, чтобы обеспечить программистов гибким и удобным набором инструментов для программного доступа к содержимому DataSet.

Свойство Fields позволяет выбрать тип результата Вот список доступных методов который можно найти в описании класса TField:

property AsBoolean

property AsFloat

property AsInteger

property AsString

property AsDateTime

Всякий раз (когда это имеет смысл), Delphi сможет сделать преобразования. Например, Delphi может преобразовывать поле Boolean к Integer или Float, или поле Integer к String. Но не будет преобразовывать String к Integer, хотя и может преобразовывать Float к Integer.

Основные свойства, методы и события НД

Свойства

Свойство: Свойство
Описание: Описание
Свойство: property Active: Boolean;
Описание: Открывает/закрывает НД
Свойство: property AutoCalcFields: Boolean;
Описание: Разрешает/запрещает возникновение события OnCalcFields
Свойство:

Type TBookmarksStr: String;

property BookMark: TBookMarkStr;

Описание: Определяет закладку на текущей записи. К помеченной записи можно быстро перейти методом GotoBookMark
Свойство: property CanModify: Boolean;
Описание: Указывает, может ли пользователь изменять НД
Свойство: property Database: TDatabase;
Описание: Определяет компонент TDatabase, связанный с данным НД
Свойство: property DatabaseName: String;
Описание: Содержи псевдоним базы данных
Свойство: property DataSource: TDataSource;
Описание: Используется в потомках для указания детального НД, в связи один ко многим
Свойство: property EOF: Boolean;
Описание: Содержит True, если курсор НД сместился за последнюю запись
Свойство: property FieldCount: Integer;
Описание: Содержит количество полей в НД
Свойство: property Fields: TFields;
Описание: Позволяет обратиться к полям по их индексу. Первое поле НД имеет индекс 0
Свойство: property FieldValues[const FieldName: String] : Variant;
Описание: Позволяет обратиться к значениям полей по имени поля
Свойство: property Filter: String;
Описание: Задает фильтрующее выражение
Свойство: property Filtered: Boolean;
Описание: Разрешает/запрещает фильтрацию записей НД
Свойство: type TFilterOption = (foCaseInsensitive, foNoPartialCompare) ; TFilterOptions = set of TFilterOption;
Описание: Определяет условия фильтрации в текстовых полях: foCaseInsensitive -учитывать регистр букв; foNoPartialCompare - поиск на точное соответствие образцу
Свойство: property Modifed: Boolean;
Описание: Содержит True, если текущая запись НД была изменена
Свойство: property RecNo: LongInt;
Описание: Определяет номер текущей записи
Свойство: property RecordCount: LongInt;
Описание: Содержит количество записей в текущем НД
Свойство:

type TDataSetState = (dsInactive, dsBrowse, dsEdit, dsInsert, dsSetKey, dsCalcFields, dsFilter, dsNewValue, dsOldValue, dsCurValue, dsBlockRead, dsInternalCalc)

property State: TDataSetState;

Описание: Указывает состояние НД: dsInactive-закрыт, dsBrowse-просмотр, dsEdit-редактирование, dsInsert-вставка, dsSetKey-поиск записи, dsCalcFields-установка вычисляемых полей, dsFilter-фильтрация записей, dsNewValue-обновление, dsOldValue-обновление, dsCurValue-обновление, dsBlockRead-чтение блока записей, dsInternalCalc-обновление

Методы:

procedureAppend;: procedure Append;
Добавляет пустую запись в конец НД: Добавляет пустую запись в конец НД
procedureAppend;: procedure AppendRecord(const Values: Array of const) ;
Добавляет пустую запись в конец НД: Добавляет новую запись, заполняет ее поля значениями Values и отсылает ее в БД
procedureAppend;: procedure ApplyUpdates;
Добавляет пустую запись в конец НД: Записывает кэш обновления в таблицы БД
procedureAppend;: procedure Cancel;
Добавляет пустую запись в конец НД: Отменяет все изменения текущей записи, которые не были сохранены в БД
procedureAppend;: procedure CancelUpdates;
Добавляет пустую запись в конец НД: Очищает кэш обновления
procedureAppend;: procedure CheckBrowseMode;
Добавляет пустую запись в конец НД: Если НД находился в состоянии редактирования или вставки, вызывает метод Post для записи изменений в БД
procedureAppend;: procedure ClearFields;
Добавляет пустую запись в конец НД: Очищает все поля текущей записи
procedureAppend;: procedure Close;
Добавляет пустую запись в конец НД: Закрывает НД
procedureAppend;: procedure CloseDatabase(Database:TDatabase) ;
Добавляет пустую запись в конец НД: Закрывает базу данных Database
procedureAppend;: procedure CommitUpdates;
Добавляет пустую запись в конец НД: Очищает кэш после успешного обновления данных в БД
procedureAppend;: function ControlsDisabled: Boolean;
Добавляет пустую запись в конец НД: Возвращает True, если показ данных в визуальных компонентах временно запрещен методом DisableControls
procedureAppend;: procedure Delete;
Добавляет пустую запись в конец НД: Удаляет текущую запись
procedureAppend;: function DisableControls;
Добавляет пустую запись в конец НД: В целях улучшения производительности при навигации по НД временно запрещает смену данных в визуальных компонентах
procedureAppend;: procedure Edit;
Добавляет пустую запись в конец НД: Редактирует текущую запись
procedureAppend;: procedure EnableCointrols;
Добавляет пустую запись в конец НД: Отменяет действие метода DisableControls
procedureAppend;: function FieldByName(const FieldName: String) :TField;
Добавляет пустую запись в конец НД: Обеспечивает доступ к полю по его имени FieldName
procedureAppend;: function FindField(const FieldName: String) :TField;
Добавляет пустую запись в конец НД: Ищет поле FieldName в НД и возвращает ссылку на поле или NIL, если поле не найдено
procedureAppend;: function FindFirst: Boolean;
Добавляет пустую запись в конец НД: Пытается установить курсор на первую запись НД и возвращает True в случае успеха
procedureAppend;: function FindLast: Boolean;
Добавляет пустую запись в конец НД: Пытается установить курсор на последнюю запись НД и возвращает True в случае успеха
procedureAppend;: function FindNext: Boolean;
Добавляет пустую запись в конец НД: Пытается установить курсор на следующую запись НД и возвращает True в случае успеха
procedureAppend;: function FindPrior: Boolean;
Добавляет пустую запись в конец НД: Пытается установить курсор на предыдущую запись НД и возвращает True в случае успеха
procedureAppend;: function First: Boolean;
Добавляет пустую запись в конец НД: Устанавливает курсор на первую запись в НД
procedureAppend;: procedure FreeBookMark(BookMark: TBookMark) ; virtual;
Добавляет пустую запись в конец НД: Освобождает память связанную с закладкой BookMark
procedureAppend;: function GetBookMark: TBookMark; virtual;
Добавляет пустую запись в конец НД: Создает закладку на текущей записи и возвращает указатель на нее
procedureAppend;: procedure GotoBookMark(BookMark: TBookMark) ;
Добавляет пустую запись в конец НД: Обеспечивает возврат к записи, связанной с закладкой BookMark
procedureAppend;: procedure Insert;
Добавляет пустую запись в конец НД: Переводит НД в режим вставки записей
procedureAppend;: procedure InsertRecord(const Values: array of const) ;
Добавляет пустую запись в конец НД: Создает пустую запись, наполняет ее поля значениями Values и вставляет ее в НД
procedureAppend;: function isEmpty: Boolean;
Добавляет пустую запись в конец НД: Возвращает True, если в НД нет записей
procedureAppend;: procedure Last;
Добавляет пустую запись в конец НД: Устанавливает курсор на последнюю запись
procedureAppend;: function Locate(const KeyFields: String; const KeyValues: Variant; Options: TLocateOptions) : Boolean;
Добавляет пустую запись в конец НД: Ищет в полях перечисленных в параметре KeyFields, значения, указанные в KeyValues при условиях, заданных параметром Options. Если запись найдена, делает ее текущей и возвращает True
procedureAppend;: function LookUp(const KeyFields: String; const KeyValues: Variant; const ResultFields: String) : Variant;
Добавляет пустую запись в конец НД: Используется в детальных НД для поиска в полях KeyFields значений KeyValues. При успехе возвращает значение полей ResultFields
procedureAppend;: function MoveBy(Distance: Integer) :Integer;
Добавляет пустую запись в конец НД: Перемещает курсор на Distance записей вверх или вниз относительно текущей записи
procedureAppend;: procedure Next;
Добавляет пустую запись в конец НД: Перемещает курсор к следующей записи
procedureAppend;: procedure Open;
Добавляет пустую запись в конец НД: Открывает НД
procedureAppend;: procedure Post; virtual;
Добавляет пустую запись в конец НД: Сохраняет вставленную или отредактированную запись в таблице БД
procedureAppend;: procedure Prior;
Добавляет пустую запись в конец НД: Перемещает курсор к предыдущей записи
procedureAppend;: procedure Refresh;
Добавляет пустую запись в конец НД: Обновляет НД данными из БД
procedureAppend;: procedure SetFields (const Values: array of const) ;
Добавляет пустую запись в конец НД: Устанавливает значения Values во все поля текущей записи

События:

... продолжение

Вы можете абсолютно на бесплатной основе полностью просмотреть эту работу через наше приложение.
Похожие работы
Компоненты Delphi для работы с базами данных: обзор BDE, Table, Query и визуальных компонентов
Разработка базы данных для детского сада в Delphi 6: структура, архитектуры и работа с компонентом TQuery
Лабораторные работы по инструментам работы с базами данных в Delphi: BDE, компоненты доступа, создание таблиц и ссылочная целостность
Проектирование и разработка прикладного программного пакета Недвижимость на Delphi для автоматизации работы с базами данных
Delphi 6: среда разработки, взаимодействие с базами данных (BDE, ADO) и организация интерфейсов в образовательных приложениях
Архитектура и модели баз данных; создание и управление базами данных в среде Delphi
Автоматизация работы отдела кадров на языке Delphi с использованием систем управления базами данных
Общие компоненты среды программирования Delphi 6 и их применение при разработке прикладных баз данных
Разработка и тестирование приложений в Delphi 7: создание интерфейсов, работа с базами данных и модульная архитектура
Delphi как платформа для баз данных: архитектура, компоненты и практические технологии
Дисциплины



Реферат Курсовая работа Дипломная работа Материал Диссертация Практика - - - 1‑10 стр. 11‑20 стр. 21‑30 стр. 31‑60 стр. 61+ стр. Основное Кол‑во стр. Доп. Поиск Ничего не найдено :( Недавно просмотренные работы Просмотренные работы не найдены Заказ Антиплагиат Просмотренные работы ru ru/