procedure CheckError(IConn: ISQLConnection);
var FStatus: SQLResult;
FSize:Smalllnt;
FMessage: pChar;
begin
FStatus := IConn.getErrorMessageLen(FSize);
if (FStatus = SQL_SUCCESS)and(FSize >
0) then begin
FMessage := AllocMem(FSize + 1) ;
FStatus := IConn.getErrorMessage(FMessage);
if FStatus = SQL_SUCCESS then MessageDlg(FMessage, mtError, [mbOK], 0) else MessageDlg('Checking error', mtWarning, [mbOK], 0) ;
if Assigned(FMessage) then FreeMem(FMessage);
end;
end;

Доступ к интерфейсу iSQLConnection можно получить через свойство

property SQLConnection: ISQLConnection; Компонента TSQLConnection.

Интерфейс ISQLCommand

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

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

function setParameter (ulParameter: Word;
ulChildPos: Word;
eParamType: TSTMTParamType;
utogType: Word;
uSufcType: Word;
iErecision: Integer;
iScale: Integer;
Length: LongWord;
pBuffer: Pointer;
llnd: Lnteger): 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: FChar; ParamCount: Word): SQLResult; stdcall; готовит запрос к выполнению с учетом значений параметров. Выполнение запроса осуществляется методом

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

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

Или метод

function executelmmediate (SQL: Шпаг;
var Cursor: ISQLCursor): SQLResult;
stdcall;

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

И метод

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

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

Интерфейс ISQLCommand ИСПОЛЬЗуется компонентом TCustomSQLDataSet И недоступен потомкам.


⇐ Предыдущая страница| |Следующая страница ⇒

Программирование в Delphi 7



Новости за месяц

  • Август
    2017
  • Пн
  • Вт
  • Ср
  • Чт
  • Пт
  • Сб
  • Вс