Что такое findslide.org?

FindSlide.org - это сайт презентаций, докладов, шаблонов в формате PowerPoint.


Для правообладателей

Обратная связь

Email: Нажмите что бы посмотреть 

Яндекс.Метрика

Презентация на тему Основы баз данных

Содержание

Основы баз данныхБаза данных – это совокупность данных, которая предназначена для машинной обработки и служит для удовлетворения нужд многих пользователей в рамках одной или нескольких организаций.База данных состоит из одной или нескольких таблиц: строки таблицы называются
Основы баз данных Основы баз данныхБаза данных – это совокупность данных, которая предназначена для машинной Основы баз данныхПервичный ключ – это одно или несколько полей таблиц, по Основы баз данныхСовокупность таблиц, связанных между собой определенным образом, называется реляционной базой Основы баз данныхОсновное достоинство РБД – повышение эффективности использования БД за счетПрименения Основы баз данныхЛокальные БД – располагаются на одном компьютере вместе с обращающимся Основы баз данныхУдаленные БД размещаются на сервере сети, а приложение, работающее с Основы баз данныхВ двухуровневом клиент-серверном приложении, как правило, все функции по формированию Механизмы доступа к данным Механизмы доступа к даннымУниверсальный механизм доступа обычно реализован в виде библиотек и Механизмы доступа к даннымНаиболее популярными среди универсальных механизмов доступа к данным являются ODBC, OLE DB, ADO – (Microsoft) промышленные стандарты ODBCДля доступа к конкретным СУБД через ODBC нужен ODBC-администратор – приложение, позволяющее ODBC ODBCНастройка источника данных ODBC OLE DBВ середине 1990-х годов, с развитием и распространением технологии COM (Component OLE DBПотребители могут обращаться к данным посредством ADO или применять OLE DB OLE DBПровайдеры данных – это компоненты ПО, манипулирующие данными. Они располагаются между OLE DBСервисный компонент (провайдер сервисов) – реализует расширенную функциональность, не поддерживаемую обычными OLE DBКаждый OLE DB-провайдер должен содержать реализацию объектов: OLE DBОбъект DataSource – предоставляет данные из источника данных потребителю; инкапсулирует информацию, ADO ADOOLE DB является интерфейсом системного уровня, который используется системными программистами. ADO – ADOДля работы с ADO в Delphi предусмотрены компоненты, расположенные на странице ADO ADOДля связи с набором данных используются компоненты ADO: ADOConnection – используется для ADOADOQuery – служит для определения SQL-операторов, позволяющих осуществить доступ к одной или ADOДля обмена информацией между набором данных и компонентами визуализации и управления данными Компонент ADOConnection Компонент ADOConnectionДанный компонент связывается с набором данных ADO. Компонент ADOConnection позволяет настроить Компонент ADOConnectionсвойство ConnectionString представляет собой строку, содержащую в себе несколько параметров соединения, Компонент ADOConnectionПри выборе первой опции необходимо указать Data Link File –файл связи Компонент ADOConnectionСтрока соединения - ConnectionStringProvider=MSDASQL.1;Persist Security Info=False;Extended Properties= Read—только чтение;ReadWrite — чтение и запись;Share Deny None — режим совместной работы Компонент ADOConnectionСоединение с БДADOConnection1.Open;илиADOConnection1.Connected := true;Метод Open, содержащего два необязательных параметра: UserID– Компонент ADOConnectionСвойства:LoginPromt :Boolean – определяет необходимость ввода пароля и идентификатора пользователя . Компонент ADOConnectionСоединение с базой данных может работать в синхронном или асинхронном режиме Работа с БДДля создания приложения БД через механизм ADO потребуются 3 группы Компоненты – наборы данных Компоненты ADOTable и ADOQueryКомпонент ADOTable:обеспечивает доступ к одной таблице базы данных. основное Компонент ADODatasetКомпонент ADODataSet используется для выборки данных из одной или нескольких таблиц Компонент ADODatasetСпособ работы компонента определяется свойством CommandType. В зависимости от выбранного типа Компонент ADODatasetДля задания запроса, используется тип cmdText.В этом случае, свойство CommandText является Компоненты доступа к данным Компонент DataSourceВкладка Data AccessКомпонент DataSource представляет собой «мост» между визуальными компонентами интерфейса Компоненты управления данными (data controls) Компоненты управления данными Компоненты управления данными Компоненты управления данными Компоненты управления данными Компоненты управления данными Отображение данных из наборов НАБОР ДАННЫХADODataSetADOTableADOQueryИСТОЧНИК ДАННЫХDataSourceКОМПОНЕНТ УПРАВЛЕНИЯ И ОТОБРАЖЕНИЯ ДАННЫХDBGrid, DBEdit, DBMemo, DBNavigator, …ADOConnectionБаза данныхConnectionStringConnectionDataSetDataSource Компоненты - наборыСвойстваActive:boolean; – свойство определяет открыт ли наборCurrentRecord – номер текущей Компоненты - наборыState – текущее состояние набора данных. Возможные состояния наборов:dsInactive – Компоненты - наборыОтслеживать состояние набора данных удобно через событие компонента DataSource - Компоненты - наборыСвойстваModified – свойство определяет, была ли изменена активная записьRecordCount – Открытие / закрытие наборовОткрытие наборов данныхADOTable1.Active := true;илиADOTable1.Open; Закрытие наборов данныхADOTable1.Active := false;илиADOTable1.Close; Поля наборов данных Работа с полями набора данныхЛюбой НД содержит как минимум одно поле. В Работа с полями набора данных Работа с полями набора данныхСвойства класса TFieldFields – массив полей набора данных Работа с полями набора данныхПример: Записать в список имена полей таблицыvar S: Работа с полями набора данныхСвойства приведения типов полейAsString – значение поля как Работа с полями набора данныхМассив Fields предоставляет доступ к полям по номеру. Работа с полями набора данныхДля доступа к полям по имени, используются свойства Работа с полями набора данныхИмена объектов поля формируются путем объединения имени набора Работа с полями набора данныхСвойства класса TFieldDisplayLabel – имя поля при выводеDisplayWidth Работа с полями набора данныхПример : Для поля CustNo задать название «ИД Работа с полями набора данныхПример 2: Если значение поля CustName не заполнено, Редактирование списка полей Работа с полями набора данныхВ Delphi предусмотрено два способа создания объектов полей: Работа с полями набора данныхДля редактирования состава полей используется специальный редактор полей, Работа с полями набора данныхКроме обычных полей данных, также можно создать вычисляемые поля и поля выбора Работа с полями набора данныхВычисляемые поля – это поля, которые не существуют Вычисляемые поляПример: Для всех сотрудников выдать информацию по текущей зарплате, а также Поля выбораПоля выбора (lookup-поля) – это поля, которые автоматически получают значения, выбранные Поля выбора Поля выбораДля определения поля выбора необходимо в редакторе полей создать новое поле типа Lookup. Поля выбораДалее в группе параметров Lookup definition следует настроить параметры для связи Поля выбораВид таблицы с добавленным полем выбора Навигация по набору данных Навигация по набору данныхFirst – перейти к первой записи набораLast – перейти Навигация по набору данныхПример: Найти сумму значений 4-го столбца таблицы ADOTable1.First;s := Навигация по набору данныхПример: Найти сумму значений 4-го столбца таблицы ADOTable1.Last;s := Навигация по набору данныхПример: Найти сумму значений 4-го столбца таблицы ADOTable1.Last;s := Модификация данных Модификация данныхAppend – добавление новой записи в конец набораDelete – удаление текущей Модификация данныхRefresh – обновление результирующего набора путем повторного извлечения данных из набораInsert Модификация данныхПеред модификацией данных, нужно вызвать метод Edit, Append или Insert, для Добавление записиПример: В таблицу добавить запись со следующими значениями: CustNo = 1345, Редактирование записиПример: В выбранной записи таблицы увеличить значение поля Price на 10%var Редактирование записиПример: Для всех записей таблицы увеличить значение поля Price на 10%var Редактирование записиПример: В текущей записи изменить значения полей таблицы: CustNo = 1345, Поиск данных Фильтрация данныхСвойстваFilter:string; – свойство для задания фильтра. Фильтр определяет условие, которому должны Фильтрация данныхПример: Найти всех сотрудников с номерами > 1200, имена которых начинаются Поиск данныхПоиск записей может осуществляться следующими методами:Found, FindFirst, FindPrev, FindNext, FindLast – Поиск данныхПример: Определить, есть ли в таблице сотрудники, номера которых > 2000 Поиск данныхПример: Определить минимальную зарплату (поле Price) сотрудников с номерами > 2000 Поиск данныхМетод LocateFunction Locate(const KeyFields; Метод Locate производит поиск по любым полям.Первая запись, удовлетворяющая критериям поиска становится Поиск данных – метод LocateПример – поиск по нескольким полям:  Найти Поиск данныхМетод Lookup находит запись, удовлетворяющую критериям поиска, но не делает её Поиск данныхМетод LookupResultFields – список полей, значения которых возвращает метод Lookup, если Поиск данных – метод LookupПример – поиск по одному полю:  Определить Пример – поиск по нескольким полям:  Определить зарплату и город сотрудника Var Res:Variant; s:string;x:integer;  …   Res := ADOTable1.Lookup(‘CustName’, Связанные курсоры Связанные курсорыСвязанные курсоры позволяют программистам определить отношение «один ко многим»Для этих целей Для создания связи нужно: в свойстве поля MasterSource дочерней таблицы установить DataSource, Связанные курсоры Связанные курсорыУсловие соединения
Слайды презентации

Слайд 2 Основы баз данных
База данных – это совокупность данных,

Основы баз данныхБаза данных – это совокупность данных, которая предназначена для

которая предназначена для машинной обработки и служит для удовлетворения

нужд многих пользователей в рамках одной или нескольких организаций.
База данных состоит из одной или нескольких таблиц: строки таблицы называются записями, столбцы – полями.
Все записи таблицы разные.


Слайд 3 Основы баз данных
Первичный ключ – это одно или

Основы баз данныхПервичный ключ – это одно или несколько полей таблиц,

несколько полей таблиц, по которым можно однозначно найти запись.
Чаще

в качестве первичного ключа используют целое число, которое увеличивается при добавлении новой записи в таблицу.


Слайд 4 Основы баз данных
Совокупность таблиц, связанных между собой определенным

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

образом, называется реляционной базой данных (РБД).
Виды связей между таблицами

БД:
Один к одному (1 : 1)
Один ко многим (1 : М)
Многие к одному (М : 1)
Многие ко многим (М : N)

Слайд 5 Основы баз данных
Основное достоинство РБД – повышение эффективности

Основы баз данныхОсновное достоинство РБД – повышение эффективности использования БД за

использования БД за счет
Применения специальных языков манипулирования данными (SQL)
Ликвидации

избыточности представления информации

Слайд 6 Основы баз данных
Локальные БД – располагаются на одном

Основы баз данныхЛокальные БД – располагаются на одном компьютере вместе с

компьютере вместе с обращающимся к ним приложением.
Работа с

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

Слайд 7 Основы баз данных
Удаленные БД размещаются на сервере сети,

Основы баз данныхУдаленные БД размещаются на сервере сети, а приложение, работающее

а приложение, работающее с этой БД, располагается на компьютере

пользователя, что соответствует архитектуре клиент-сервер (двухуровневая архитектура).
Клиентом является приложение пользователя, которое формирует запрос (на языке SQL) для получения данных и посылает его на удаленный сервер, где находится БД.
При получении такого запроса, удаленный сервер отправляет его серверу БД (SQL-серверу).
Сервер БД представляет собой программу, с помощью которой осуществляется управление удаленной БД и обеспечивает выдачу клиенту результатов выполнения поступившего запроса.
Вся работа происходит непосредственно на удаленном сервере.

Слайд 9 Основы баз данных
В двухуровневом клиент-серверном приложении, как правило,

Основы баз данныхВ двухуровневом клиент-серверном приложении, как правило, все функции по

все функции по формированию пользовательского интерфейса реализуются на клиенте,

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

Слайд 11 Механизмы доступа к данным

Механизмы доступа к данным

Слайд 12 Механизмы доступа к данным
Универсальный механизм доступа обычно реализован

Механизмы доступа к даннымУниверсальный механизм доступа обычно реализован в виде библиотек

в виде библиотек и дополнительный модулей, называемых драйверами или

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

Слайд 13 Механизмы доступа к данным
Наиболее популярными среди универсальных механизмов

Механизмы доступа к даннымНаиболее популярными среди универсальных механизмов доступа к данным

доступа к данным являются следующие:
ODBC (Open DataBase Connectivity)
OLE DB

(Object Linking and Embedding, DataBase)
ADO (ActiveX Data Objects)
BDE (Borland Database Engine)
ODBC, OLE DB, ADO – (Microsoft) промышленные стандарты
BDE – механизм, применяемый в средствах разработки фирмы Borland (устаревший механизм, применяется для обратной совместимости с ранее разработанными БД)

Слайд 14 ODBC, OLE DB, ADO – (Microsoft) промышленные стандарты

ODBC, OLE DB, ADO – (Microsoft) промышленные стандарты

Слайд 15 ODBC
Для доступа к конкретным СУБД через ODBC нужен

ODBCДля доступа к конкретным СУБД через ODBC нужен ODBC-администратор – приложение,

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

данного компьютера с помощью ODBC
ODBC-драйвер для доступа к этой БД
Для каждой используемой СУБД нужен соответствующий ODBC-драйвер

Слайд 17 ODBC
Настройка источника данных ODBC

ODBCНастройка источника данных ODBC

Слайд 18 OLE DB
В середине 1990-х годов, с развитием и

OLE DBВ середине 1990-х годов, с развитием и распространением технологии COM

распространением технологии COM (Component Object Model), компания Microsoft объявила

о постепенном переходе от ODBC к использованию новой технологии OLE DB.
OLE DB – представляет собой программный интерфейс для доступа к различным источникам данных: реляционные и нереляционные данные, текстовая и графическая информация и т.д.)
Любой программный компонент, применяющий OLE DB, является потребителем

Слайд 19 OLE DB
Потребители могут обращаться к данным посредством ADO

OLE DBПотребители могут обращаться к данным посредством ADO или применять OLE

или применять OLE DB непосредственно, используя OLE-DB-провайдер.
Провайдер – это

часть ПО, в которой реализованы интерфейсы OLE DB.
Существуют два типа провайдеров: провайдеры данных и сервисные компоненты.

Слайд 21 OLE DB
Провайдеры данных – это компоненты ПО, манипулирующие

OLE DBПровайдеры данных – это компоненты ПО, манипулирующие данными. Они располагаются

данными.
Они располагаются между потребителями данных и БД.
Примеры:
Microsoft Jet

4.0 OLE DB Provider
Microsoft OLE DB Provider for ODBC Drivers
Microsoft OLE DB Provider for SQL Server
Microsoft OLE DB Provider for Oracle
и др


Слайд 22 OLE DB
Сервисный компонент (провайдер сервисов) – реализует расширенную

OLE DBСервисный компонент (провайдер сервисов) – реализует расширенную функциональность, не поддерживаемую

функциональность, не поддерживаемую обычными провайдерами данных.
Сервисный компонент может обращаться

к хранилищу данных непосредственно или с помощью соответствующего провайдера данных – в этом случае провайдер сервисов является одновременно и поставщиком и потребителем.
Примеры:
Microsoft Cursor Service for OLE DB
Microsoft Data Snapping Service for OLE DB

Слайд 23 OLE DB
Каждый OLE DB-провайдер должен содержать реализацию объектов:

OLE DBКаждый OLE DB-провайдер должен содержать реализацию объектов:

Слайд 24 OLE DB
Объект DataSource – предоставляет данные из источника

OLE DBОбъект DataSource – предоставляет данные из источника данных потребителю; инкапсулирует

данных потребителю; инкапсулирует информацию, связанную с соединением (включая имя

пользователя и пароль).
Объект Session - предоставляет контекст для транзакций, может генерировать наборы данных (rowsets) из источников данных, а также команды для запросов к источнику данных.
Объект Command – используется для выполнения команд, представляющих собой строки, передаваемые от потребителя данных объекту Data Source для выполнения.
Объект Rowset (набор данных) позволяет OLE DB-провайдеру данных представлять данные из источников данных в табличном формате, также используется для обновления, добавления или удаления строк

Слайд 26 ADO
OLE DB является интерфейсом системного уровня, который используется

ADOOLE DB является интерфейсом системного уровня, который используется системными программистами. ADO

системными программистами.
ADO – представляет собой высокоуровневый программный интерфейс

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

Слайд 27 ADO
Для работы с ADO в Delphi предусмотрены компоненты,

ADOДля работы с ADO в Delphi предусмотрены компоненты, расположенные на странице

расположенные на странице ADO (в последних версиях на странице

dbGo). Они инкапсулируют такие объекты ADO как Connection, Command и RecordSet.


Слайд 28 ADO
Для связи с набором данных используются компоненты ADO:

ADOДля связи с набором данных используются компоненты ADO: ADOConnection – используется


ADOConnection – используется для соединения с различными источниками ADO,


ADODataSet – используется для выборки данных из одной или нескольких таблиц и доступа к ним посредством ADO,
ADOTable – используется для работы с одной таблицей в базе данных

Слайд 29 ADO
ADOQuery – служит для определения SQL-операторов, позволяющих осуществить

ADOADOQuery – служит для определения SQL-операторов, позволяющих осуществить доступ к одной

доступ к одной или нескольким таблицам в БД,
ADOStoredProc

– предназначена для исполнения хранимых процедур БД,
ADOCommand – обеспечивает выполнение команд, не возвращающих результаты

Слайд 30 ADO
Для обмена информацией между набором данных и компонентами

ADOДля обмена информацией между набором данных и компонентами визуализации и управления

визуализации и управления данными используется компонент DataSourse.
Для визуализации

и управления данными применяются компоненты DBGrid, DBText, DBNavigator и др.

Слайд 32 Компонент ADOConnection

Компонент ADOConnection

Слайд 33 Компонент ADOConnection
Данный компонент связывается с набором данных ADO.

Компонент ADOConnectionДанный компонент связывается с набором данных ADO. Компонент ADOConnection позволяет


Компонент ADOConnection позволяет настроить процедуру аутентификации, контролировать транзакции, напрямую

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


Слайд 34 Компонент ADOConnection
свойство ConnectionString представляет собой строку, содержащую в

Компонент ADOConnectionсвойство ConnectionString представляет собой строку, содержащую в себе несколько параметров

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

точками с запятой:
Provider – имя провайдера, используемое для соединения,
File name – имя файла, содержащего информацию о соединении,
Remote provider – имя провайдера, используемое со стороны клиента,
Remote Server – путь и имя сервера.
и др.


Слайд 35 Компонент ADOConnection
При выборе первой опции необходимо указать Data

Компонент ADOConnectionПри выборе первой опции необходимо указать Data Link File –файл

Link File –файл связи с данными, содержащий информацию о

подключаемой БД.
Файл может иметь любое расширение, но обычно это файл с расширением *.udl.


Слайд 41 Компонент ADOConnection
Строка соединения - ConnectionString

Provider=MSDASQL.1;
Persist Security Info=False;
Extended Properties= "DSN=MS

Компонент ADOConnectionСтрока соединения - ConnectionStringProvider=MSDASQL.1;Persist Security Info=False;Extended Properties=

Access Database;DBQ=D:\Мои базы SQL SERVER\base.accdb; DefaultDir=D:\Мои базы SQL SERVER;

DriverId=25; FIL=MS Access; MaxBufferSize=2048; PageTimeout=5; UID=admin;"

Слайд 42 Read—только чтение;
ReadWrite — чтение и запись;
Share Deny None

Read—только чтение;ReadWrite — чтение и запись;Share Deny None — режим совместной

— режим совместной работы невозможен;
Share Deny Read — нельзя

совместно использовать данные, открытые в режиме чтения;
Share Deny Write — нельзя совместно использовать данные, открытые в режиме записи;
Share Exclusive — нельзя совместно использовать данные, открытые в режиме чтения и/или записи;
Write – только запись.


Слайд 43 Компонент ADOConnection
Соединение с БД
ADOConnection1.Open;
или
ADOConnection1.Connected := true;

Метод Open, содержащего

Компонент ADOConnectionСоединение с БДADOConnection1.Open;илиADOConnection1.Connected := true;Метод Open, содержащего два необязательных параметра:

два необязательных параметра: UserID– идентификатор пользователя, Password – пароль

пользователя.

Закрытие соединения с БД
ADOConnection1.Close;
или
ADOConnection1.Connected := false;


Слайд 44 Компонент ADOConnection
Свойства:
LoginPromt :Boolean – определяет необходимость ввода пароля

Компонент ADOConnectionСвойства:LoginPromt :Boolean – определяет необходимость ввода пароля и идентификатора пользователя

и идентификатора пользователя . Если LoginPromt=false – пароль можно

не задавать ни в строке соединения, ни при вызове метода Open.
свойство KeepConnection – используется для проверки соединения компонента ADOConnection с базой данных.

Слайд 45 Компонент ADOConnection
Соединение с базой данных может работать в

Компонент ADOConnectionСоединение с базой данных может работать в синхронном или асинхронном

синхронном или асинхронном режиме - свойство ConnectOptions:
ConnectOptions=coСonnectUnspecified в синхронном

режиме,
ConnectOptions=coAsyncСonnect в асинхронном режиме.
Синхронное соединение всегда ожидает результат последнего запроса, асинхронное соединение может выполнять новые запросы, не дожидаясь ответа от предыдущих запросов.

Слайд 46 Работа с БД
Для создания приложения БД через механизм

Работа с БДДля создания приложения БД через механизм ADO потребуются 3

ADO потребуются 3 группы компонентов:
Компоненты – наборы данных

(вкладка ADO / dbGo)
Компоненты доступа к данным (вкладка Data Access)
Компоненты управления данными (вкладка Data Controls)

Слайд 47 Компоненты – наборы данных

Компоненты – наборы данных

Слайд 48 Компоненты ADOTable и ADOQuery
Компонент ADOTable:
обеспечивает доступ к одной

Компоненты ADOTable и ADOQueryКомпонент ADOTable:обеспечивает доступ к одной таблице базы данных.

таблице базы данных.
основное свойство TableName с помощью которого

задается имя таблицы.
Компонент ADOQuery:
используется для выполнения запросов на языке SQL, позволяет получать данные из одной или нескольких таблиц БД .
основное свойство SQL, которое содержит текст запроса

Слайд 49 Компонент ADODataset
Компонент ADODataSet используется для выборки данных из

Компонент ADODatasetКомпонент ADODataSet используется для выборки данных из одной или нескольких

одной или нескольких таблиц и доступа к ним посредством

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

Слайд 50 Компонент ADODataset
Способ работы компонента определяется свойством CommandType.
В

Компонент ADODatasetСпособ работы компонента определяется свойством CommandType. В зависимости от выбранного

зависимости от выбранного типа выставляется соответствующее значение свойства CommandText

Например,

если выбран тип cmdTable, то в свойстве CommandText указывается название таблицы;

Слайд 51 Компонент ADODataset
Для задания запроса, используется тип cmdText.
В этом

Компонент ADODatasetДля задания запроса, используется тип cmdText.В этом случае, свойство CommandText

случае, свойство CommandText является составным и редактируется посредством редактора

CommandText Editor

Слайд 52 Компоненты доступа к данным

Компоненты доступа к данным

Слайд 53 Компонент DataSource
Вкладка Data Access
Компонент DataSource представляет собой «мост»

Компонент DataSourceВкладка Data AccessКомпонент DataSource представляет собой «мост» между визуальными компонентами

между визуальными компонентами интерфейса БД и компонентами TDataSet.
Необходим

для работы практически любого из компонентов интерфейса БД.
Позволяет устанавливать некоторые параметры НД, устанавливать состояние НД, отслеживать изменения НД

Слайд 54 Компоненты управления данными (data controls)

Компоненты управления данными (data controls)

Слайд 55 Компоненты управления данными

Компоненты управления данными

Слайд 56 Компоненты управления данными

Компоненты управления данными

Слайд 57 Компоненты управления данными

Компоненты управления данными

Слайд 58 Компоненты управления данными

Компоненты управления данными

Слайд 59 Компоненты управления данными

Компоненты управления данными

Слайд 60 Отображение данных из наборов

Отображение данных из наборов

Слайд 61 НАБОР ДАННЫХ

ADODataSet
ADOTable
ADOQuery
ИСТОЧНИК ДАННЫХ



DataSource
КОМПОНЕНТ УПРАВЛЕНИЯ И ОТОБРАЖЕНИЯ ДАННЫХ


DBGrid, DBEdit,

НАБОР ДАННЫХADODataSetADOTableADOQueryИСТОЧНИК ДАННЫХDataSourceКОМПОНЕНТ УПРАВЛЕНИЯ И ОТОБРАЖЕНИЯ ДАННЫХDBGrid, DBEdit, DBMemo, DBNavigator, …ADOConnectionБаза данныхConnectionStringConnectionDataSetDataSource

DBMemo, DBNavigator, …
ADOConnection
База данных
ConnectionString
Connection
DataSet
DataSource


Слайд 62 Компоненты - наборы
Свойства
Active:boolean; – свойство определяет открыт ли

Компоненты - наборыСвойстваActive:boolean; – свойство определяет открыт ли наборCurrentRecord – номер

набор
CurrentRecord – номер текущей записи
DataSource – свойство, указывающее родительскую

таблицу (для таблиц, связанных отношением родитель-потомок)
BOF – определяет, находится ли курсор в первой записи набора
EOF – определяет, достигнут ли конец набора

Слайд 63 Компоненты - наборы
State – текущее состояние набора данных.

Компоненты - наборыState – текущее состояние набора данных. Возможные состояния наборов:dsInactive

Возможные состояния наборов:
dsInactive – набор закрыт
dsBrowse – режим просмотра

данных
dsEdit – режим редактирования активной записи
dsInsert – режим добавления данных
dsSetKey – просмотр ограниченного множества записей или поиск записи
dsCalcFields, dsFilter – выполняются обработчики onCalcFields или onFilterRecord, соответственно.
dsOpening – режим открытия набора


Слайд 64 Компоненты - наборы
Отслеживать состояние набора данных удобно через

Компоненты - наборыОтслеживать состояние набора данных удобно через событие компонента DataSource

событие компонента DataSource - OnStateChange
procedure TForm1.DataSource1StateChange

(Sender:TObject);
var s:string;
begin
case ADOTable1.State of
dsInactive : s := ‘Inactive’;
dsEdit : s := ‘Edit’;
dsBrowse : s := ‘Browse’;
dsInsert : s := ‘Insert’;
else
s := ‘other’;
end;
Label1.Caption := s; end;

В результате в тексте метке выводится информация о текущем состоянии набора данных


Слайд 65 Компоненты - наборы
Свойства
Modified – свойство определяет, была ли

Компоненты - наборыСвойстваModified – свойство определяет, была ли изменена активная записьRecordCount

изменена активная запись
RecordCount – общее число записей в наборе

Методы
Open

– открыть набор данных
Close – закрыть набор данных

Слайд 66 Открытие / закрытие наборов
Открытие наборов данных
ADOTable1.Active := true;
или
ADOTable1.Open;

Открытие / закрытие наборовОткрытие наборов данныхADOTable1.Active := true;илиADOTable1.Open; Закрытие наборов данныхADOTable1.Active := false;илиADOTable1.Close;


Закрытие наборов данных
ADOTable1.Active := false;
или
ADOTable1.Close;


Слайд 67 Поля наборов данных

Поля наборов данных

Слайд 68 Работа с полями набора данных
Любой НД содержит как

Работа с полями набора данныхЛюбой НД содержит как минимум одно поле.

минимум одно поле.
В Delphi каждому полю набора данных

приложения соответствует собственный объект.
Основой объектов полей является класс TField, который инкапсулирует основные свойства абстрактного поля, не зависящего от типа данных.
От класса TField порождены другие классы, обеспечивающие функционирование реальных объектов полей, зависящих от типа данных.

Слайд 69 Работа с полями набора данных

Работа с полями набора данных

Слайд 70 Работа с полями набора данных
Свойства класса TField

Fields –

Работа с полями набора данныхСвойства класса TFieldFields – массив полей набора

массив полей набора данных (нумерация полей с 0).
FieldCount

– количество полей набора данных
FieldName – имя поля
Value – значение поля
FieldByName (имя_поля):TField– доступ к полю по имени
FieldValues [имя_поля]:Variant– текущее значение выбранного поля


Слайд 71 Работа с полями набора данных
Пример: Записать в список

Работа с полями набора данныхПример: Записать в список имена полей таблицыvar

имена полей таблицы

var
S: String;
begin
ComboBox1.Items.BeginUpdate;

ComboBox1.Items.Clear;
for i:=0 to ADOTable1.FieldCount-1 do
begin
S :=ADOTable1.Fields[i].FieldName;
ComboBox1.Items.Add(s);
end;
ComboBox1.Items.EndUpdate;
end;

Слайд 72 Работа с полями набора данных
Свойства приведения типов полей

AsString

Работа с полями набора данныхСвойства приведения типов полейAsString – значение поля

– значение поля как строка
AsInteger – значение поля как

целое число
AsDateTime – значение поля как дата/время
AsBoolean – значение поля true или false
AsSingle – значение поля как веществ.число
AsFloat –как веществ.число двойной точности
и др.

Слайд 73 Работа с полями набора данных
Массив Fields предоставляет доступ

Работа с полями набора данныхМассив Fields предоставляет доступ к полям по

к полям по номеру.
При этом поля нумеруются в

порядке следования при их объявлении

Пример: Считать значение полей активной записи

var
S: String; x, y:integer;

S :=ADOTable1.Fields[0].asString;
X :=ADOTable1.Fields[1].asInteger;
y := ADOTable1.Fields[2].Value;


Слайд 74 Работа с полями набора данных
Для доступа к полям

Работа с полями набора данныхДля доступа к полям по имени, используются

по имени, используются свойства FieldByName или FieldValues (обращение по

умолчанию)

Пример: Считать значения полей активной записи в переменные

var
S: String; x,x1:integer;

S:=ADOTable1.FieldByName(‘CustName’).asString;

X := ADOTable1.FieldValues[‘CustNo’];

X1 := ADOTable1[‘CustNo’];


Слайд 75 Работа с полями набора данных
Имена объектов поля формируются

Работа с полями набора данныхИмена объектов поля формируются путем объединения имени

путем объединения имени набора данных и имени поля.
Например, если

в таблице ADOTable1 имеется поле CustName, то объект класса TField данного поля получит имя ADOTable1CustNo

Пример: Считать значения поля CustNo:
Способы:

S:=ADOTable1.FieldByName(‘CustNo’).asInteger;
X := ADOTable1.FieldValues[‘CustNo’];
X1 := ADOTable1[‘CustNo’];

X2 := ADOTable1CustNo.asInteger;


Слайд 76 Работа с полями набора данных
Свойства класса TField

DisplayLabel –

Работа с полями набора данныхСвойства класса TFieldDisplayLabel – имя поля при

имя поля при выводе
DisplayWidth – ширина поля при выводе
isNull

– определяет содержит ли поле NULL-значение в текущей записи
Required – является ли поле обязательным к заполнению
CanModify – определяет, может ли поле изменяться
и др

Слайд 77 Работа с полями набора данных

Пример : Для поля

Работа с полями набора данныхПример : Для поля CustNo задать название

CustNo задать название «ИД заказчика», а ширину поля вывода

- 30:

ADOTable1.FieldByName(‘CustNo’).DisplayLabel := «ИД заказчика» ;

ADOTable1CustNo.DisplayWidth = 30;


Слайд 78 Работа с полями набора данных

Пример 2: Если значение

Работа с полями набора данныхПример 2: Если значение поля CustName не

поля CustName не заполнено, выдать соответствующее сообщение:

If ADOTable1.FieldByName(‘CustName’).isNull then

ShowMessage(‘Поле не заполнено!’);

If ADOTable1CustName.isNull then
ShowMessage(‘Поле не заполнено!’);


Слайд 79 Редактирование списка полей

Редактирование списка полей

Слайд 80 Работа с полями набора данных
В Delphi предусмотрено два

Работа с полями набора данныхВ Delphi предусмотрено два способа создания объектов

способа создания объектов полей: статические и динамические поля.
Динамические объекты

полей автоматически создаются при открытии набора данных в соответствии со структурой связанной таблицы БД.
Статические объекты полей создаются программистом на этапе разработки при помощи специализированного Редактора полей, их свойства доступны в Инспекторе объектов.

Слайд 81 Работа с полями набора данных
Для редактирования состава полей

Работа с полями набора данныхДля редактирования состава полей используется специальный редактор

используется специальный редактор полей, который открывается двойным щелчком по

объекту-набору данных или через контекстное меню набора данных – Fields Editor

Слайд 82 Работа с полями набора данных
Кроме обычных полей данных,

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

также можно создать вычисляемые поля и поля выбора


Слайд 83 Работа с полями набора данных
Вычисляемые поля – это

Работа с полями набора данныхВычисляемые поля – это поля, которые не

поля, которые не существуют в реальных таблицах, а вычисляются

по значениям других полей
Для задания вычисляемого поля – используется Field type – Calculated
Выражение для вычисления нужно задать в обработчике события onCalcFields набора данных.
Данное событие возникает при открытии НД, а также при перемещении курсора от одной записи к другой.
Если свойство AutoCalcFields = true, то событие onCalcFields возникает при каждой модификации невычисляемых полей этого набора данных.


Слайд 84 Вычисляемые поля
Пример: Для всех сотрудников выдать информацию по

Вычисляемые поляПример: Для всех сотрудников выдать информацию по текущей зарплате, а

текущей зарплате, а также значение зарплаты, увеличенной на 20%
Procedure

TForm1.ADOTable1CalcFields(DataSet:TDataSet);
Begin
ADOTable1HighSalary.asFloat := 1.2*ADOTable1Salary.asFloat;
End;

Требуется:
В список полей добавить новое вычисляемое поле «HighSalary»
Создать обработчик события onCalcFields таблицы


Слайд 85 Поля выбора
Поля выбора (lookup-поля) – это поля, которые

Поля выбораПоля выбора (lookup-поля) – это поля, которые автоматически получают значения,

автоматически получают значения, выбранные из списка, формируемого на основе

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



Слайд 86 Поля выбора

Поля выбора

Слайд 87 Поля выбора
Для определения поля выбора необходимо в редакторе

Поля выбораДля определения поля выбора необходимо в редакторе полей создать новое поле типа Lookup.

полей создать новое поле типа Lookup.



Слайд 88 Поля выбора
Далее в группе параметров Lookup definition следует

Поля выбораДалее в группе параметров Lookup definition следует настроить параметры для

настроить параметры для связи таблиц:
Key Fields – поле в

исходной таблице (НД-1), используемое в качестве внешнего ключа
Dataset – набор данных (НД-2), из которого поле выбора должно получать значения
Lookup Keys – поле для связи, определенное в НД-2
Result Field – поле результата, значение которого нужно выводить в исходной таблице (НД-1)



Слайд 89 Поля выбора
Вид таблицы с добавленным полем выбора

Поля выбораВид таблицы с добавленным полем выбора

Слайд 90 Навигация по набору данных

Навигация по набору данных

Слайд 91 Навигация по набору данных
First – перейти к первой

Навигация по набору данныхFirst – перейти к первой записи набораLast –

записи набора
Last – перейти к последней записи набора
Next –

перейти к следующей записи
Prev – перейти к предыдущей записи
MoveBy(Distance:integer) – перейти на указанное в параметре Distance число записей вперед или назад

Слайд 92 Навигация по набору данных
Пример: Найти сумму значений 4-го

Навигация по набору данныхПример: Найти сумму значений 4-го столбца таблицы ADOTable1.First;s

столбца таблицы
ADOTable1.First;
s := 0;
While not ADOTable1.EOF do

begin
x := ADOTable1.Fields[3].AsInteger;
s := s + x;
ADOTable1.Next;
end;

Слайд 93 Навигация по набору данных
Пример: Найти сумму значений 4-го

Навигация по набору данныхПример: Найти сумму значений 4-го столбца таблицы ADOTable1.Last;s

столбца таблицы
ADOTable1.Last;
s := 0;
While not ADOTable1.BOF do

begin
x := ADOTable1.Fields[3].AsInteger;
s := s + x;
ADOTable1.Prev;
end;

Слайд 94 Навигация по набору данных
Пример: Найти сумму значений 4-го

Навигация по набору данныхПример: Найти сумму значений 4-го столбца таблицы ADOTable1.Last;s

столбца таблицы
ADOTable1.Last;
s := 0;
While not ADOTable1.BOF do

begin
x := ADOTable1.Fields[3].AsInteger;
s := s + x;
ADOTable1.Move(-1);
end;

Слайд 95 Модификация данных

Модификация данных

Слайд 96 Модификация данных
Append – добавление новой записи в конец

Модификация данныхAppend – добавление новой записи в конец набораDelete – удаление

набора
Delete – удаление текущей записи набора
Edit – перевод текущей

записи в режим редактирования
Cancel – отмена изменений, сделанных в текущей записи
Post – сохранение изменений, сделанных в текущей записи
SetFields(const Values: array of const) – используется для изменения значений всех или некоторых полей текущей записи

Слайд 97 Модификация данных
Refresh – обновление результирующего набора путем повторного

Модификация данныхRefresh – обновление результирующего набора путем повторного извлечения данных из

извлечения данных из набора
Insert – вставляет новую запись в

текущую позицию
InsertRecord – вставляет новую запись в текущую позицию со значениями, указанными в параметрах
AppendRecord – вставляет новую запись в конец набора со значениями, указанными в параметрах

Слайд 98 Модификация данных
Перед модификацией данных, нужно вызвать метод Edit,

Модификация данныхПеред модификацией данных, нужно вызвать метод Edit, Append или Insert,

Append или Insert, для перевода набора данных в состояние

редактирования или добавления.
Для сохранения измененных значений записи, требуется вызвать метод Post или Next, для отмены изменений – метод Cancel
Непосредственное изменение значения текущего поля активной записи выполняется одним из следующих способов:

ADOTable1.Fields[1].AsString := ‘Иванов’;
ADOTable1.FieldByName(‘CustName’).asString := ‘Иванов’;
ADOTable1.FieldValues[‘CustName’] := ‘Иванов’;
ADOTable1[‘CustName’] := ‘Иванов’;



Слайд 99 Добавление записи
Пример: В таблицу добавить запись со следующими

Добавление записиПример: В таблицу добавить запись со следующими значениями: CustNo =

значениями: CustNo = 1345, CustName = ‘Петров’, Price =

120.56;


With ADOTable1 do
Begin
Append;
FieldValues[‘CustNo’] := 1345;
FieldValues[‘Price’] := 120.56;
FieldByName(‘CustName’).asString :=‘Петров’;
Post;
end;


Слайд 100 Редактирование записи
Пример: В выбранной записи таблицы увеличить значение

Редактирование записиПример: В выбранной записи таблицы увеличить значение поля Price на

поля Price на 10%
var x:single;

With ADOTable1 do
Begin
Edit;

x := FieldValues[‘Price’];
FieldValues[‘Price’] := 1.1*x;
Post;
end;

Слайд 101 Редактирование записи
Пример: Для всех записей таблицы увеличить значение

Редактирование записиПример: Для всех записей таблицы увеличить значение поля Price на

поля Price на 10%
var x:single;

With ADOTable1 do begin

First;
While not EOF do
Begin
Edit;
x := FieldValues[‘Price’];
FieldValues[‘Price’] := 1.1*x;
Next;
end;
end;

Для сохранения результатов используется метод Next


Слайд 102 Редактирование записи
Пример: В текущей записи изменить значения полей

Редактирование записиПример: В текущей записи изменить значения полей таблицы: CustNo =

таблицы: CustNo = 1345, CustName = ‘Петров’, Price =

120.56;
(Предположим, в таблице имеются следующие поля: CustNo, City, CustName, Price )


With ADOTable1 do
Begin
Edit;
SetFields([1345, nil, ‘Петров’, 120.56]);
Post;
end;

Константа nil используется для сохранения предыдущего значения поля


Слайд 103 Поиск данных

Поиск данных

Слайд 104 Фильтрация данных
Свойства
Filter:string; – свойство для задания фильтра. Фильтр

Фильтрация данныхСвойстваFilter:string; – свойство для задания фильтра. Фильтр определяет условие, которому

определяет условие, которому должны удовлетворять доступные записи
Filtered: boolean –

определяет, используется ли фильтр, заданный свойством Filter
Событие
onFilterRecord – возникает, когда свойство Filtered устанавливается в True. В параметре Accept события можно указывать дополнительные (к Filter) условия фильтрации


Слайд 105 Фильтрация данных
Пример: Найти всех сотрудников с номерами >

Фильтрация данныхПример: Найти всех сотрудников с номерами > 1200, имена которых

1200, имена которых начинаются от буквы ‘A’ до ‘D’


ADOTable1.Filtered :=False;
ADOTable1.Filter := 'CustNo>1200 and Contact<’#29'E’#29;
ADOTable1.Filtered :=True;

#29 – символ «’». Используется для задания условия на строковые значения

ADOTable1.Filter := 'CustNo>1200 and Contact<’’’+‘E’+’’’’;


Слайд 106 Поиск данных
Поиск записей может осуществляться следующими методами:
Found, FindFirst,

Поиск данныхПоиск записей может осуществляться следующими методами:Found, FindFirst, FindPrev, FindNext, FindLast

FindPrev, FindNext, FindLast – логические функции, возвращающие True, если

найдена запись, удовлетворяющая заданному фильтру (при этом значение свойства Filtered может быть как True так и False).
Locate
Lookup

Слайд 107 Поиск данных
Пример: Определить, есть ли в таблице сотрудники,

Поиск данныхПример: Определить, есть ли в таблице сотрудники, номера которых >

номера которых > 2000
ADOTable1.Filtered :=False;
ADOTable1.Filter :='CustNo>2000’;
if ADOTable1.FindFirst

then ShowMessage(‘Есть такие сотрудники’)
else ShowMessage(‘Нет таких сотрудников’);

Слайд 108 Поиск данных
Пример: Определить минимальную зарплату (поле Price) сотрудников

Поиск данныхПример: Определить минимальную зарплату (поле Price) сотрудников с номерами >

с номерами > 2000
ADOTable1.Filtered :=False;
ADOTable1.Filter := 'CustNo>2000’;
If ADOTable1.FindFirst

then min_price := ADOTable1.FieldValues[‘Price’];
While ADOTable1.Found do
begin
x := ADOTable1.FieldValues[‘Price’];
if x < min_price then min_price := x;
ADOTable1.FindNext;
end;

Слайд 109 Поиск данных
Метод Locate

Function Locate(const KeyFields;

Поиск данныхМетод LocateFunction Locate(const KeyFields;

const

KeyValues: Variant; Options:TLocateOptions):Boolean;

KeyFields – поле/поля, по которым ведется поиск в виде строки, разделитель «;»
KeyValues – вариантный массив критериев поиска
Options – множество режимов поиска:
[] – пустое множество означает полное совпадение с критерием
[loCaseInsensitive] – без учета регистра
[loPartialKey] – частичное совпадение с критерием поиска



Слайд 110 Метод Locate производит поиск по любым полям.
Первая запись,

Метод Locate производит поиск по любым полям.Первая запись, удовлетворяющая критериям поиска

удовлетворяющая критериям поиска становится активной.

Поиск данных – метод Locate
Пример

– поиск по одному полю: Найти сотрудника по следующему критерию:
CustName=‘Петров’

if ADOTable1.Locate(‘CustName’, ‘Петров’,[])
then ShowMessage (‘Запись найдена’) else ShowMessage(‘Запись не найдена’);


Слайд 111 Поиск данных – метод Locate
Пример – поиск по

Поиск данных – метод LocateПример – поиск по нескольким полям: Найти

нескольким полям: Найти запись по следующим критериям:
CustName=‘Петров’, City =

‘Москва’, Price = 1235
Установить режим частичного совпадения.

if ADOTable1.Locate(‘CustName;City;Price’, VarArrayOf(‘Петров’, ‘Москва’, 1235), [loPartialKey])
then ShowMessage (‘Запись найдена’) else ShowMessage(‘Запись не найдена’);


Слайд 112 Поиск данных
Метод Lookup находит запись, удовлетворяющую критериям поиска,

Поиск данныхМетод Lookup находит запись, удовлетворяющую критериям поиска, но не делает

но не делает её текущей, а возвращает значения некоторых

полей этой записи.

Function Lookup(const KeyFields; const KeyValues: Variant; const ResultFields:String):Variant;

KeyFields – поле/поля, по которым ведется поиск в виде строки, разделитель «;»
KeyValues – вариантный массив критериев поиска

Слайд 113 Поиск данных
Метод Lookup

ResultFields – список полей, значения которых

Поиск данныхМетод LookupResultFields – список полей, значения которых возвращает метод Lookup,

возвращает метод Lookup, если запись, удовлетворяющая критериям поиска найдена:


Если указано одно поле, то результат – либо значение этого поля, либо NULL
Если указано несколько полей, то результат – вариантный массив, число элементов которого не превышает количество результирующих полей
Для проверки типа результата (переменная, или вариантный массив) используется логическая функция VarIsArray



Слайд 114 Поиск данных – метод Lookup
Пример – поиск по

Поиск данных – метод LookupПример – поиск по одному полю: Определить

одному полю: Определить зарплату сотрудника по следующему критерию: CustName=

‘Петров’

Var Res:Variant;
s:string;

Res := ADOTable1.Lookup(‘CustName’, ‘Петров’, ‘Price’);
case VarType(Res) of
varEmpty : s:= ‘Нет данных о зарплате’;
varNull : s:= ‘Запись не найдена’;
else s := Res;
end;
ShowMessage(s);


Слайд 115 Пример – поиск по нескольким полям: Определить зарплату

Пример – поиск по нескольким полям: Определить зарплату и город сотрудника

и город сотрудника по следующему критерию: CustName= ‘Петров’,
Поиск данных

– метод Lookup

Слайд 116 Var Res:Variant; s:string;x:integer;

Var Res:Variant; s:string;x:integer; …  Res := ADOTable1.Lookup(‘CustName’, ‘Петров’,

Res := ADOTable1.Lookup(‘CustName’, ‘Петров’,

‘Price;City’);
if VarIsArray(Res) then
begin
x:= Res[0];
if Res[1]<>Null then s:= Res[1];
end else
case VarType(Res) of
varEmpty : s:= ‘Нет данных о зарплате’;
varNull : s:= ‘Запись не найдена’;
else s := Res;
end;
ShowMessage(s);

Слайд 117 Связанные курсоры

Связанные курсоры

Слайд 118 Связанные курсоры
Связанные курсоры позволяют программистам определить отношение «один

Связанные курсорыСвязанные курсоры позволяют программистам определить отношение «один ко многим»Для этих

ко многим»
Для этих целей используются следующие свойства наборов данных:
MasterSource:TDataSource;
MasterFields:WideString;

Свойство

MasterSource – определяет источник данных родительской таблицы
Свойство MasterFields – определяет поле/поля для связи родительской таблицы с дочерней


Слайд 119 Для создания связи нужно:
в свойстве поля MasterSource

Для создания связи нужно: в свойстве поля MasterSource дочерней таблицы установить

дочерней таблицы установить DataSource, связанный с родительской таблицей.
Открыть свойство

MasterFields
В появившемся окне выбрать связанные поля и нажать на кнопку ADD.
В результате при перемещении по родительской таблицы, в дочерней таблице будут отображаться только связанные записи

Связанные курсоры


Слайд 120 Связанные курсоры

Связанные курсоры

  • Имя файла: osnovy-baz-dannyh.pptx
  • Количество просмотров: 118
  • Количество скачиваний: 0