Иллюстрированный самоучитель по Delphi 7 для профессионалов

Параметры. Класс TParameters.

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

Для каждого параметра из коллекции класса TParameters создается отдельный класс TParameter.

Этот класс является наследником класса коллекции TCollection и инкапсулирует индексированный список отдельных параметров (см. ниже). Напомним, что для работы с параметрами обычных запросов в компонентах запросов и хранимых процедур используется класс TParams (например в компонентах dbExpress), также происходящий от класса коллекции.

Методы этих двух классов совпадают, а свойства имеют некоторые отличия. Для представления параметров команд в ADO имеется специальный объект параметров, который активно используется в процессе работы компонентов АDO, инкапсулирующих набор данных.

Поэтому для компонентов ADO в VCL был создан собственный класс параметров.

Класс TParameters

Главное, для чего предназначен класс TParameters – содержать список параметров. Индексированный список параметров представлен свойством:

property Items[Index: Integer]: TParameter;

Текущие значения параметров можно получить из индексированного свойства:

property ParamValues[const ParamName: String]: Variant;

При этом доступ к конкретному значению осуществляется по имени параметра:

Editl.Text: = ADODataSet.Parameters.ParamValues['ParamOne'];

Список параметров можно обновлять при помощи методов:

function AddParameter: TParameter;

…и:

function CreateParameter(const Name: WideString; DataType: TDataType;
Direction: TParameterDirection; Size: Integer;
Value: OleVariant): TParameter;

Первый метод просто создает новый объект параметра и добавляет его к списку. Затем необходимо задать все свойства нового параметра:

var NewParam: TParameter;
NewParam: = ADODataSet.Parameters.AddParameter; NewParam.Name: = 'ParamTwo';
NewParam.DataType: = ftlnteger;
NewParam.Direction: = pdlnput; NewParam.Value: = 0;

Метод CreateParameter создает новый параметр и определяет его свойства:

  • Name – имя параметра;
  • DataType – тип данных параметра, соответствующий типу поля таблицы БД (тип TFieldType);
  • Direction – тип параметра, в дополнение к стандартным типам dUnknown, pdlnput, pdOutput, pdlnputOutput,тип TParameterDirection имеет дополнительный тип pdReturnValue, определяющий любое возвращаемое значение;
  • size – максимальный размер значения параметра;
  • value – значение параметра.

При работе с параметрами полезно вызывать их, используя имена, а не абсолютные индексы в списке. Для этого можно использовать метод:

function ParamByName(const Value: WideString): TParameter;

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

procedure Refresh;

Также вы можете создать список параметров для не связанного с данным объектом параметров запроса. Для этого используется метод:

function ParseSQL(SQL: String; DoCreate: Boolean): String;

Где DoCreate определяет, удалять ли перед анализом существующие параметры.

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.