V\HTep<benclSQLCursor
Интерфейс ISQLCursor обладает совокупностью методов, которые помогут получить информацию о полях курсора, а также значения этих полей. Все эти методы имеют одинаковое представление. Для получения нужной информации необходимо задать порядковый номер поля в структуре курсора.
Метод
function next: SQLResult;
stdcall;
обновляет курсор, занося в него информацию из следующей строки набора данных.
Интерфейс ISQLCursor используется компонентом TCustomSQLDataSet и недоступен потомкам.
Отладка приложений с технологией dbExpress
Наряду с обычными методами отладки исходного кода, в dbExpress существует возможность контроля запросов, проходящих на сервер через соединение. ДЛЯ ЭТОГО ИШОЛЬЗугТСЯ КОМПОНеНТ TSQLMonitor.
Через свойство
property SQLconnection: TSQLCjonnection;
компонент связывается с отлаживаемым соединением.
Затем компонент включается установкой Active = True.
Теперь во время выполнения приложения сразу после открытия соединения свойство
property TraceList: TStrings;
будет заполняться информацией обо всех проходящих командах. Содержимое этого списка можно сохранить в файле при помощи метода procedure SaveToFile(AFileName: string);
Эту же информацию можно автоматически добавлять в текстовый файл, определяемый свойством
property FileName: string;
но только тогда, когда свойство
property AutoSave: Boolean;
будет иметь значение True.
Свойство
property MaxTraceCount: Integer;
определяет максимальное число контролируемых команд, а также управляет процессом контроля. При значении -1 ограничения снимаются, а при значении 0 контроль останавливается.
Текущее число проверенных команд содержится в свойстве
property TraceCount: Integer;
Перед записью команды в список вызывается метод-обработчик
TTraceEvent = procedure(Sender: TObject;
CBInfo: pSQLTRACEDesc;
var LxsgTrace: Boolean) of object;
property CnTrace: TLraceEvent;
а сразу после записи в список вызывается
TIraceLogEvent = procedure (Sender: TObject;
CBPnfo: pSQLTRACEDesc) of object;
prcperty CnLcigTrace: TTraceLogEvent ;
Таким образом, разработчик получает компактный и симпатичный компонент, позволяющий без усилий получать информацию о прохождении команд в соединении.
Если же компонент TSQLMonitDr не подходит, можно воспользоваться методом
procedure SetTraceCallbackEvent(Event: TSQLCallbackEvent; IClientlnfo:
Integer);
компонента TSQLConnection. Параметр процедурного типа Event определяет функцию, которая будет вызываться при выполнении каждой команды. Параметр iciientinf о должен содержать любое число.
Он позволяет разработчику самостоятельно определить функцию типа
TSQLCallbackEvent:
TRACECat = TvpedEnum;
TSQLCallbackEvent = function(CallType: TRACECat;
CBTnfo: Pointer): CBRType;
stdcall;
Эта функция будет вызываться каждый раз при прохождении команды. Текст команды будет передаваться в буфер CBinfo. Разработчику необходимо лишь выполнить запланированные действия с буфером внутри функции.
Рассмотрим в качестве примера следующий исходный код.
function GetTracelnfо(CallType: TRACECat;
CBinfo: Pointer): CBRType;