M Y D E L P H I 7 . R U Самоучитель программирования  
 
  • Главная
  •  

     

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