|
Интерфейс ISQLCommand
Интерфейс 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
и недоступен потомкам.
|