Название текущей процедуры
Может ли такие данные содержаться в RTTI-информации? А если может, то как вытащить?
Компоненты для БД какие?
Может ли такие данные содержаться в RTTI-информации? А если может, то как вытащить?
Думаю возможно ибо DeDe как-то с этим справляется. А вот как он это делает - другой вопрос :)
как DeDe это делает можно посмотреть в его сорцах, которые найти в сети не так уж и сложно.
Вы все пытаетесь решить проблему в том виде, в каком предложил автор, что в данном случае не есть правильно. На самом деле проблема-то в другом.
Когда перед нами стояла аналогичная задача, мы решили её по-другому.
Freeman подскажи тогда, как решалась подобная задача.
Преамбула. Разрабатывался проект, который должен был внедряться и работать сразу в десятке мест одновременно (в пределах города). В некотором смысле данные были разрознены, и полностью воссоздать условия работы программы в процессе разработки было затруднительно. Плюс постоянный цейтнот: "проект должен быть сдан вчера".
Амбула. В результате мозгового штурма было решено завести режим журналирования (логирования), в котором сохранять в файле все запросы, отсылаемые на сервер. Записи должны выглядеть следующим образом:
<текст SQL>
<если позволяет компонент, параметры>
Если произошло исключение, добавлялось:
<текст исключения>
Ясен пень, что если журналирование велось последовательно, текст исключения в журнале следовал непосредственно за некорректным запросом. При возникновении ошибок и невозможности решить их на месте, группе внедрения было достаточно привезти разработчикам журнал, по которому было легко понять, что делал пользователь, и как реагировала программа.
Реализация. Для этой цели был специально разработан компонент TLog, сохраняющий журнал в автоматическом режиме - его было достаточно кинуть на модуль данных, и потом пользоваться методами. Все запросы (TxxxQuery) имели обработчик BeforeOpen и BeforeRefresh (или вызывали в числе прочих действий), записывающий нужные данные в журнал. Для журналирования исключений пришлось писать хитрый метод на Application.OnException, чтобы не попасть в клинч. Впоследствии, при переходе на ODAC, журналирование было возложено на специализированный компонент TOraSQLMonitor, обрабатывающий и исключения тоже.