Russian Belarusian English German Japanese Ukrainian

Rashka.studio - игры и приложения для Android! Заходи, ждём тебя =)

Отладка соединения с сервером

CuBook05

Для получения информации о местах ошибок в SQL-запросах при отладке соединения приложения с сервером БД служит компонент SQLMonitor. Он осуществляет перехват сообщений между соединением и сервером баз данных и помещает их в список строк, определяемый свойством TraceList типа TStrings.
 
Для начала работы с компонентом нужно установить связь с соединением через свойство SQLConnection и активизировать его, задав свойству Active значение true.
Перед каждой записью сообщений в список строк возникает событие OnTrace, тип которого описан так:
typedef void __fastcall (__closure *TTraceEvent)(System::TObject* Sender, pSQLTRACEDesc CBInfo, bool &LogTrace);
а сразу после записи в список возникает событие onLogTrace типа:
typedef void __fastcall (__closure *TTraceLogEvent)(System::TObject* Sender, PSQLTRACEDesc CBInfo);
Содержимое списка можно сохранить в файле на жестком диске с помощью метода SaveToFile.
 
При задании свойству AutoSave типа bool значения true данные о проходящих командах автоматически заносятся в текстовый файл с именем, заданным значением свойства FileName типа Ansistring.
Свойство MaxTraceCount типа int определяет максимальное число контролируемых команд, а также управляет процессом контроля. При значении -1 ограничения снимаются, а при значении о контроль не выполняется. На число сохраненных в списке команд указывает свойство TraceCount типа int.
 
Пусть требуется выполнять оперативное отображение информации о последнем сообщении в окне многострочного редактора (компонент Memo1):
void __fastcall TForm1::SQLMonitorlLogTrace(TObject *Sender, pSQLTRACEDesc CBInfo)
{
Memo1->Lines->Clear();
Memo1->Lines=SQLMonitor1->TraceList;
SQLMonitor1->TraceList->Clear(); // Очистка списка сообщений
}
Как видно из приведенного кода, был использован обработчик события OnLogin. В качестве возможного варианта сообщения, отслеживаемого при работе компонента монитора, возможна строка вида:
INTERBASE - isc_dsql_free_statement
Как видно из приведенного текста, перехвачено сообщение от сервера INERBASE.
Для автономного dbExpress-приложения нужны две динамически подключаемые библиотеки (DLL). Первая библиотека содержит драйвер dbExpress, например, для сервера БД InterBase это dbexpint.dll. Вторая библиотека есть midas.dll, используемая для поддержки компонента SQLClientDataSet. Обе библиотеки могут быть откомпилированы вместе с проектом и включены в ехе-файл распространяемого приложения.
Если заметили ошибку, выделите фрагмент текста и нажмите Ctrl+Enter

Добавить комментарий