Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
24-30.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
67.07 Кб
Скачать

27. Состояния набора данных. Методы изменения данных.

Набор данных в любой момент времени находится в некотором состоянии, т. е. подготовлен к выполнению действий строго определенного рода. И для каждой группы операций набор данных выполняет ряд подготовительных действий.

Все состояния набора данных делятся на две группы.

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

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

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

Текущее состояние набора данных передается в свойство state, имеющее тип TDataSetState:

type TDataSetState = (dslnactive, dsBrowse, dsEdit, dslnsert, dsSetKey, dsCalcFields, dsFilter, dsNewValue, dsOldValue, dsCurValue, dsBlockRead, dsInternalCalc);

Для изменения данных используются специальные запросы: INSERT, UPDATE, DELETE.

Пример запроса для удаления записи:

DELETE FROM country WHERE Name='Argentina';

28. Доступ к данным.

Компоненты для доступа к данным, реализующие:

– доступ через процессор баз данных BDE, используя ODBC-

драйверы или внутренние драйверы BDE;

- доступ через ADO-объекты, в основе которого лежит применение

технологии OLE DB;

– доступ к локальному или удалённому SQL-серверу InterBase;

– доступ посредством драйверов dbExpress;

– доступ к БД при многозвенной архитектуре (компоненты страницы

DataSnap);

С помощью него мы работали

Класс TADOConnection обеспечивает соединение с данными, доступ к

которым реализуется через ADO-объекты. Компоненты ADOConnection ис-

пользуют для доступа к данным OLE DB-провайдеры.

Компоненты ADOCommand и ADODataSet связываются с источником

данных посредством объекта ADOConnection, указывая ссылку на него как

значение свойства Connection.

Для идентификации соединения необходимо определить значение свой-

ства ConnectionString (строка соединения) компонента ADOConnection,

которое может основываться на указании datalink-файла или строки соедине-

ния. Если в качестве значения свойства ConnectionString указано имя

datalink-файла, то настройку соединения можно выполнять автономно от при-

ложения (например, указывая имя базы данных Microsoft SQL Server на теку-

щем ПК).

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

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

Мы уже рассматривали навигацию при помощи специального компонента - DBNavigator. Теперь рассмотрим, как можно осуществлять ее программным способом, обращаясь непосредственно к методам набора данных.

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

  • First - устанавливает указатель на первую запись;

  • Next - устанавливает указатель на запись, следующую за текущей;

  • Last - устанавливает указатель на последнюю запись;

  • Prior - устанавливает указатель на запись, предшествующую за текущей;

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

Table1.MoveBy(10); //перемещение указателя на 10 записей вперед Table1.MoveBy(-3); //перемещение указателя на 3 записи назад x:=Table1.MoveBy(y); //использование возвращаемого значения if x<>y then Caption:='Перемещено только на '+IntToStr(x)+' записей';

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