Sources
Delphi Russian Knowledge Base
DRKB - база знаний по Дельфи в рунете, составленная Виталием Невзоровым

ISQLCommand

01.01.2007

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

Параметры запроса устанавливаются методом

function setParameter(ulParameter: Word; ulChildPos: Word; eParamType:
   TSTMTParamType; uLogType: Word; uSubType: Word; iPrecision: Integer;
   iScale: Integer; Length: LongWord; pBuffer: Pointer; llnd: Integer):
   SQLResult; stdcall;

где ulParameter - порядковый номер параметра; если параметр является дочерним для сложных типов данных, ulchildPos задает его порядковый номер; eParamType задает тип параметра (входной, выходной, смешанный); uLogType - тип данных параметра; uSubType - вспомогательный параметр типа данных; iscale - максимальный размер значения в байтах; iPrecision - максимальная точность типа данных; Length - размер буфера; pBuffer - буфер, содержащий значение параметра; lInd - флаг, определяющий, может ли параметр иметь нулевое значение.

Для каждого параметра метод вызывается снова. Информацию о параметре можно получить, используя метод

function getParameter(ParameterNumber: Word; ulChildPos: Word; Value:
  Pointer; Length: Integer; var IsBlank: Integer): SQLResult; stdcall;

где ParameterNumber - порядковый номер параметра; если параметр является дочерним для сложных типов данных, ulchildPos задает его порядковый номер; value - указатель на буфер значения параметра; Length - размер буфера; isBlank - признак незаполненного параметра.

Метод

function prepare(SQL: PChar; ParamCount: Word): SQLResult; stdcall;

готовит запрос к выполнению с учетом значений параметров. Выполнение запроса осуществляется методом

function execute(var Cursor: ISQLCursor): SQLResult; stdcall;

который возвращает в параметре интерфейс курсора, если запрос выполнен. Или метод

function executelmmediate(SQL: PChar; var Cursor: ISQLCursor):
    SQLResult; stdcall;

который выполняет запрос, не требующий подготовки (не имеющий параметров). Он также возвращает в параметре cursor готовый интерфейс курсора, если запрос выполнен успешно. Текст запроса определяется параметром SQL.

И метод

function getNextCursor(var Cursor: ISQLCursor): SQLResult; stdcall;

определяет в параметре Cursor курсор следующего набора данных, если выполнялась хранимая процедура, которая возвращает несколько наборов данных.

Интерфейс iSQLCommand используется компонентом TCustomSQLDataSet и недоступен потомкам.

Previous page:
ISQLConnection
Top:
DRKB
Next page:
ISQLCursor