Мастера DELPHI, Delphi programming community Рейтинг@Mail.ru Титульная страница Поиск, карта сайта Написать письмо 
| Новости |
Новости сайта
Поиск |
Поиск по лучшим сайтам о Delphi
FAQ |
Огромная база часто задаваемых вопросов и, конечно же, ответы к ним ;)
Статьи |
Подборка статей на самые разные темы. Все о DELPHI
Книги |
Новинки книжного рынка
Новости VCL
Обзор свежих компонент со всего мира, по-русски!
|
| Форумы
Здесь вы можете задать свой вопрос и наверняка получите ответ
| ЧАТ |
Место для общения :)
Орешник |
Коллекция курьезных вопросов из форумов
KOL и MCK |
KOL и MCK - Компактные программы на Delphi
 
Анжелика что ждать от второго сезона сериала сериал анжелика.

Работа с клиентскими наборами данных

Следи за собой - будь осторожен или использование SQLMonitor.

Итак, остался всего один компонент на закладке dbExpress, не обследованный нами - это SQLMonitor. Как вы уже догадались - его задача - это протоколирование событий, происходящих в программе при обращении к базе данных. Протокол может выводиться как в StringList, так и файл.

Создадим новый проект (File/ New Application). На главную форму положим SQLConection, SQLClientDataSet. Настроим SQLConnection на соединение с БД, а SQLClientDataSet на получение данных через SQLConnection. Свойства Connected SQLConnection и Active SQLClientDataSet установим в True. Все стандартно.

Теперь положим на форму компонент - SQL Monitor. Обглядим, какими свойствами И событиями он обладает:

Свойство/Событие/Метод Тип Описание
Свойства
Active Boolean Активность монитора- вкл/выкл
AutoSave Boolean Авто сохранение протокола в файл, имя файла должно быть указано в св-ве FileName
FileName String Имя файла для сохранения протокола. Если св-во AutoSave установлено в true, то в указанный файл протокол записывается автоматически, если AutoSave :=false, то FileName используется как файл по умолчанию, для методов LoadFromFile, SaveToFile
SQLConnection TSQLConnection Соединение с БД, работа с которым будет протколироваться
TraceList TStrings Содержимое протокола
Методы
LoadFromFile (AFileName:string) Загрузить протокол из файла
SaveToFile (AFileName:string) Сохранить протокол в файл
События
OnLogTrace TTraceLogEvent Генерируется сразу после вставки нового сообщения в протокол
OnTrace TTraceEvent Генерируется при наличии сообщения для протокола, перед его вставкой


Что нам остается сделать - в компоненте SQLMonitor1 установить свойство SQLConnection равным SQLConnection1, а затем свойство Active SQLMonitor1 установим в True. Для вывода сообщений расположим на форме компонент Memo. Для его заполнения создадим обработчик события OnLogTrace компонента SQLMonitor1 со следующим кодом:

Memo1.Clear;
Memo1.LinesAddString(SQLMonitor1.TraceList);

Все запускаем полученное приложение - читаем протокол.

У меня возник по поводу использования монитора только один вопрос (Кто идет за "Клинским"? :) А как отслеживать не все события, а только какие-то определенные? Ответ нашелся довольно быстро.

Структура CBInfo:pSQLTraceDesc имеет поле eTraceCat, содержащее категорию произошедшего события. Однако у меня значение этого поля всегда было равно 256. Таким образом, нам остается только анализировать текст сообщения, находящийся в поле pszTrace вышеуказанной структуры.

Ну вот и все. Ваши замечания и предложения я рад буду увидеть в почтовом ящике mgoblin@mail.ru


Часть 1. Введение. | Часть 2. Работа с клиентскими наборами данных. | Часть 3. Использование SQLMonitor
   Внимание! Запрещается перепечатка данной статьи или ее части без согласования с автором. Если вы хотите разместить эту статью на своем сайте или издать в печатном виде, свяжитесь с автором.
Автор статьи:  Mike Goblin
  

Другие статьи Наверх


  Рейтинг@Mail.ru     Титульная страница Поиск, карта сайта Написать письмо