На главную страницу
Форум txt.version   




Статья :: Курсор набора данных

 

Курсор набора данных

Для набора данных ADO в зависимости от его назначения можно выбрать тип и местоположение используемого курсора. Местоположение курсора задается свойством

type TCursorLocation = (clUseServer, clUseClient); property CursorLocation: TCursorLocation;

Курсор может находиться на сервере (CIUseServer) или на клиенте (CIUseClient).

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

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

TMarshalOption = (moMarshalAll, moMarshalModifiedOnly); property MarshalOptions: TmarshalOption

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

Тип курсора определяется свойством

TCursorType = (ctUnspecified, CtOpenForwardOnly, ctKeyset, ctDynamic,

ctStatic);

property CursorType: TCursorType;

ctunspecified — курсор не задан, тип курсора определяется возможностями источника данных;

ctOpenForwardOnly — однонаправленный курсор, допускающий перемещение только вперед; используется при необходимости быстрого одиночного прохода по всем записям набора данных;

ctKeyset — двунаправленный локальный курсор, не обеспечивающий просмотр добавленных и удаленных другими пользователями записей;

 ctDynamic — двунаправленный курсор, отображает все изменения, требует наибольших затрат ресурсов;

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

Примечание

Если курсор расположен на клиенте (CursorType = ciusedient), то для него доступен только один тип — ctStatic.

Соответственно до и после каждого перемещения курсора в наборе данных вызываются методы - обработчики:

TRecordsetReasonEvent = procedure(DataSet: TCustomADODataSet;

const Reason: TEventReason; 

var EventStatus: TEventStatus) of object;

property OnWillMove: TRecordsetReasonEvent;

и

TP.ecordsetErrorEvent = procedure(DataSet: TCustomADODataSet; const --eason: TEventReason;

const Error: Error; var EventStatus: TEventStatus) if object; 

property OnMoveComplete: TRecordsetErrorEvent;

где параметр Reason позволяет узнать, какой метод вызвал это перемещение.

 

Курсор набора данных

страницы в данном разделе 
 ГЛАВА 19   ГЛАВА 19Использование ADO средствами Delphi
 Основы ADO  Перечислители
 Объекты соединения с источниками данных  Сессия
 Транзакции  Наборы рядов
 Команды  Провайдеры ADO
 Реализация ADO в Delphi  Компоненты ADO
 Механизм соединения с хранилищем данных ADO  Компонент TADOConnection
 Настройка соединения  Управление соединением
 Доступ к связанным наборам данных и командам ADO  Объект ошибок ADO
 Транзакции  Наборы данных ADO
 Класс TCustomADODataSet  Набор данных
 Курсор набора данных  Локальный буфер
 Состояние записи  Фильтрация
 Поиск  Сортировка
 Команда ADO  Групповые операции
 Параметры  Класс TParameters
 Класс TParameter  Компонент TADODataSet
 Компонент TADOTable  Компонент TADOQuery
 Компонент TADOStoredProc  Команды ADO
 Объект ошибок ADO  Пример приложения ADO
 Соединение с источником данных  Групповые операции
 Фильтрация  Сортировка
 Резюме   


Разделы
Околокомпьютерная литература (375)
Программирование (102)
Программы (75)
ОС и Сети (49)
Интернет (29)
Аппаратное обеспечение (16)
Базы данных (6)
Flutter
React Native
Xamarin

Содержание сайта (выборка)
Apache
Протоколы TCP/IP (принципы, протоколы и архитектура)

PHP, PELR, JSP
PHP
JavaServer Pages (JSP)

Базы данных
Основы mysql
СУБД INFORMIX
СУБД POSTGRES
Основы проектирования реляционных баз данных

HTML, javascript
Спецификация HTML 4.01
Каскадные Таблицы Стилей, Уровень 2
Клиентский JavaScript. Справочник.
JavaScript руководство пользователя
Серверный JavaScript 1.4. Руководство по Использованию.

Паскаль, C, C++, C#
GCC (примеры)
FAQ Валентинa Озеровa DELPHI
C





 
©  programming-lang.com  справочник программиста
©  http://ekb.programming-lang.com/tlg/  бесплатный телеграм бот
©  http://ekb.programming-lang.com/tlg/  бесплатный телеграм бот
React Native
demo forum