Компонент TADODataSet

   
На этом шаге мы рассмотрим компонент TADODataSet.

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

   
Компонент TADODataSet обеспечивает доступ к одной или нескольким таблицам базы данных с помощью
запроса типа Select. Компонент рассчитан на возвращение набора данных, поэтому его нельзя использовать
для выполнения подмножества операторов DDL. В компоненте есть свойство CommandText,
однако в него можно поместить только оператор Select. Для выполнения DDL-предложений языка
SQL можно использовать метод Execute компонента TADOCommand или метод
ExecSQL компонента TADOQuery.

   
Свойства компонента TADODataset, многие из которых компонент наследует от своих предков
TCustomADODataSet и TDataSet, приведены в таблице 1.

   

Таблица 1.Свойства компонента TADODataSet

Свойство Описание
property Active: Boolean; Указывает, открыт ли набор данных. Значения свойства изменяют методы Open
и Close.
property CacheSize: Integer; Определяет размер локального клиентского буфера, в котором размещаются записи набора данных
после передачи клиенту. Значение свойства есть число записей, помещаемых в локальный буфер,
и оно не может быть меньше 1. Очевидно, что при достаточно большом размере буфера компонент будет обращаться к источнику данных
не так часто, но при этом большой буфер заметно замедлит открытие набора данных.
property CommandText: WideString; Указывает, какая команда должна выполняться с помощью
метода Execute. Это может быть строка, содержащая SQL-оператор, имя таблицы или хранимой
процедуры. Для обеспечения более высокой производительности необходимо указывать
тип команды в свойстве CommandType.
property CommandTimeout: Integer; Указывает количество времени в секундах, после которого
команда будет отменена, умолчанию 30 с.
property CommandType: TCommandType; Определяет тип команды, заданной в свойстве CommandText. Возможные значения:

  • mdUnknown - тип заданной команды неизвестен;
  • cmdText - текстовое представление команды или хранимой процедуры;
  • cmdTable - в свойстве CommandText указано имя таблицы, образующей обрабатываемый набор;
  • cmdStoredProc - в свойстве CommandText указано имя хранимой процедуры, создающей набор данных;
  • cmdFile - в свойстве CommandText указано имя файла с сохраненным набором записей;
  • cmdTableDirect - в свойстве CommandText указано имя таблицы.
property Connection: TADOConnection; Используется для указания компоненты TADOConnection,
предназначенной для соединения с базой данных.
property ConnectionString: WideString; Используется для указания подробной информации о соединениях с источником данных.
Применяется вместо использования компонента TADOConnection.
property CursorLocation: TCursorLocation; Указывает местоположение механизма управления курсором.

  • clUseClient - клиентский курсор. Позволяет выполнять любые операции с данными, в том числе не
    поддерживаемые сервером;
  • clUseServer - серверный курсор. Реализует только возможности сервера, но обеспечивает быструю
    обработку больших массивов данных.
property CursorType: TCursotType; Указывает тип используемого курсора в наборе данных ADO.
Возможные значения:

  • ctDynamic - позволяет видеть добавления, изменения и удаления, сделанные другими пользователями,
    а также позволяет делать все типы перемещения по записям, не полагаясь на закладки;
  • ctKeyset - ведет себя подобно динамическому курсору, за исключением того, что нельзя видеть записи,
    которые добавляют другие пользователи, а также не возможно получить доступ к записям, которые удаляются другими
    пользователями. Изменения данных, выполненные другими пользователями будут видимы. Этот тип всегда
    поддерживает закладки и поэтому позволяет все типы перемещения по записям);
  • ctStatic - обеспечивает статическую копию набора записей, чтобы использовать её для поиска
    данных и генерации отчётов. Данный тип всегда разрешает закладки и поэтому позволяет все
    типы движения по записям. Добавления, изменения, или удаления другими пользователями
    не будут видимы.
  • ctOpenForwardOnly - ведет себя идентично динамическому курсору, за исключением того, что позволяет
    пролистывать набор данных по записям только вперед. Это увеличивает производительность в ситуациях,
    где необходимо делать только один проход по набору записей.

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

property ExecuteOptions: TExecuteOptions; Используется для установки режимов, влияющих на выполнение команды, указанной в
свойстве CommandText. Возможные значения:

  • eoAsyncExecute - асинхронное выполнение команды;
  • eoAsyncFetch - асинхронное выполнение команды на обновление набора данных;
  • eoAsyncFetch-NonBlocking - асинхронное выполнение команды на обновление набора данных без установки блокировки;
  • eoExecuteNoRecords - команда или хранимая процедура ничего не возвращает; если получены какие-то строки,
    то они игнорируются;
property Filter: String; Используется для указания критерия отбора данных в набор.
property Filtered: Boolean; Используется для активации текущего фильтра.
property FilterGroup: TFilterGroup; Используется для указания фильтра на основе статуса обновленных строк.
Возможные значения:

  • fgUnassigned - показывает, что фильтр не указан;
  • fgPendingRecords - фильтр показывает строки, которые были изменены, но еще не обновлены
    (метод UpdateBatch) или отменены (метод CancelBatch);
  • fgNone - отключает фильтр, и все записи становятся видимыми;
  • fgAffectedRecords - фильтр показывает последние обновленные записи;
  • fgFetchedRecords - фильтр показывает записи в текущем кэше обновления. Это строки, полученные при
    последнем запросе;
  • fgPredicate - фильтр показывает удаленные записи;
  • fgConflictingRecords - фильтр показывает строки, которые были изменены, но не были обновлены из-за ошибок;
property IndexFieldNames: String; Содержит список имен столбцов, используемых в текущем индексе.
property IndexName: String; Содержит имя текущего индекса.
property LockType: TADOLockType; Указывает режим блокировки записей для операций редактирования.
Для того чтобы установка блокировки сработала, свойство LockType должно быть обязательно
модифицировано до открытия набора данных. Возможные значения:

  • ltOptimistic - оптимистическая блокировка; блокирует запись только в том случае, если она была физически изменена.
    Этот тип блокировки полезен, если существует очень маленький шанс того, что второй пользователь может
    модифицировать строку в интервале между тем,когда курсор открыт, и когда строка окончательно модифицирована.
    Текущие значения в строке сравниваются со значениями, полученным когда строка была последний раз выбрана;
  • ltPessimistic - блокирует каждую запись, до тех пор пока она находится в процессе редактирования. Эта опция
    заставляет ADO устанавливать исключительную блокировку на строку,
    когда пользователь делает любое изменения в любом столбце записи;
  • ltReadOnly - не позволяет редактировать данные. Полезна в тех случаях, когда приложение должно временно
    предотвратить изменение данных, при этом чтение данной записи разрешено;
  • ltBatchOptimistic - используется в клиентских курсорах. Наборы записей с данным курсором обновляются
    локально, и все изменения отправляются в базу данных пакетами.
property MarshalOptions: TMarshalOption; Управляет обменом данных клиента с сервером. Возможные значения:

  • moMarshalAll - разрешает возврат серверу всех записей набора данных;
  • moMarshalModifiedOnly - обеспечивает возврат только модифицированных клиентом записей.
property Sort: WideString; Используется для указания порядка сортировки. Содержит список из пар
из имен полей и направления сортировки (ASC, DESC).
property Parameters; Используется для установки значений параметров, необходимых для выполнения
SQL-запроса или же хранимой процедуры.
property Prepared: Boolean; Значение данного свойства нужно установить в True, перед вызовом
команды, для указания того, что скомпилированная версия данной команды перед выполнением
должна быть сохранена для ускорения последующих вызовов.

   
На следующем шаге мы рассмотрим компоненты TADOTable, TADOQuery и TADOStoredProc.



Вы можете оставить комментарий, или Трекбэк с вашего сайта.

Оставить комментарий