Учись программированию на C++ Builder бесплатно!

В таблице приведены компоненты, используемые в технологии ADO, аналогами можно назвать достаточно условно, так как большинство из них поддерживают однонаправленные наборы данных.

Соответствие компонентов в технологиях ADO, dbExpress и BDE

Компонент ADO Компонент dbExpress Компонент BDE
ADOTable SQLTable Table
ADOQuery SQLQuery Query
ADOStoredProc SQLStoredProc StoredProc
ADOConnection SQLConneсtion Database
ADODataSet SQLDataSet, SQLSimpleDataSet Table, Query, StoredProc
ADOCommand    
RDSConnection    

Стандартные компоненты в C++ Builder доступа к данным БД по технологии ADO (ADODataSet, ADOTable, ADOQuery, ADOStoredProc) наследуют механизм доступа от родительского класса TCustomADODataSet. Основные свойства и методы данного класса во многом определяют поведение компонентов доступа к БД в ADO. К числу основных свойств TCustomADODataSet можно отнести свойства, которые способны устанавливать параметры обмена с хранилищем данных. Необходимо до открытия набора данных задавать параметры.

Свойство LockType 

Свойство LockType типа TADOLockType определяет тип блокировки записей в БД и имеет следующую структуру:

enum TADOLockType { ltUnspecified, ltReadOnly, ltPessimistic, ltCptimistic, ltBatchOptimistic };

Параметры LockType

  • ltunspecified – осуществляет блокировку через источник данных.
  • ltReadoniy – открывает базу данных только в режиме для чтения.
  • ltPessimistic – осуществляет блокировку на время редактирования.

Свойство Marshaioptions

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

enum TMarshalOption { moMarshalAll, moMarshalModifiedOnly };

Параметры Marshaioptions

  • moMarshalAll – возвращает все записи локального набора данных серверу.
  • moMarshalModifiedOnly – возвращает только измененные записи.

Свойство CursorType

Определяет тип курсора и имеет следующую структуру:

enum TCursorType { ctUnspecified, ctOpenForwardOnly, ctKeyset, ctDynamic, ctStatic };

Параметры CursorType

  • ctUnspecified – тип курсора не задан и определяется возможностями источника данных.
  • ctOpenForwardOnly – однонаправленный курсор, который используется для одиночного прохода по всем записям.
  • ctKeyset – двунаправленный курсор, который не отображает записи, добавленные или удаленные другими пользователями.
  • ctStatic – двунаправленный курсор, который не учитывает изменения записей другими пользователями.

Свойство RecordStatus

По умолчанию блочная пересылка выключена, а число записей в БД не ограничено. Так, текущее состояние записи в БД определяет свойство RecordStatus типа TrecordStatusSet, имеющее следующую структуру:

enum TRecordStatus { rsOK, rsNew, rsModified, rsDeleted, rsUnmodified, rsinvalid, rsMultipleChanges, rsPendingChanges, rsCanceled, rsCantRelease, rsConcurrencyViolation, rsIntegrityViolation, rsMaxChangesExceeded, rsObjectOpen, rsOutOfMemory, rsPermissionDenied, rsSchemaViolation, rsDBDeleted };
typedef Set<TRecordStatus, rsOK, rsDBDeleted> TRecordStatusSet;

Параметры RecordStatus

  • rsOK – запись успешно изменена.
  • rsNew – новая запись добавлена.
  • rsModified – запись изменена.
  • rsDeleted – запись удалена.
  • rsUnmodified – запись осталась без изменений.

Остальные свойства

  • CursorLocation – задает местоположение курсора.
  • Active или метода Open – открывает базу данных для чтения или редактирования.
  • CacheSize типа Integer – получает размер буфера, в котором хранятся записи из набора данных от клиента.
  • BlockReadSize типа Integer – передает записи в виде блоков.
  • MaxRecords типа Integer – ограничивает размер набора данных.

Поиск по сайту