Консоль запросов с просмотром временных таблиц для 8.1



Кому приходится писать и отлаживать запросы с большим количеством временных таблиц, постоянно сталкивается с необходимостью проверить содержимое временных таблиц.
А если их много, да называются похоже? На этот случай я доработал консоль запросов, разработанную Евгением Лавелиным — теперь все временные таблицы выводятся в меню, откуда их можно быстро открыть.

Кому приходится писать и отлаживать запросы с большим количеством временных таблиц, постоянно сталкивается с необходимостью проверить содержимое временных таблиц.
А если их много, да называются похоже? На этот случай я доработал консоль запросов, разработанную Евгением Лавелиным (http://www.lavelin.ru) — теперь все временные таблицы выводятся в меню, откуда их можно быстро открыть, и при необходимости — уничтожить.

Основной режим работы — с использованием постоянного менеджера временных таблиц. В таком режиме при успешном выполнении запроса в списке временных таблиц появляются все таблицы, которые создаются в запросе. И убираются все таблицы, которые уничтожаются в выполняемом запросе.

При выборе временной таблицы в меню ее содержимое открывается в отдельном окошке. Каждая таблица открывается в своем окне. Можно отсортировать данные по одному столбцу, можно вывести список в табличный документ.

Улучшен анализ текста запроса — теперь закомментированные строки пропускаются (не создаются лишние строки в списке таблиц и не убираются из меню те таблицы, уничтожение которых закомментировано).

 

19 Comments

  1. cool.vlad4

    было уже, но все равно посмотрю, имхо лавелинская консоль в плане интерфейса самая удачная

    Reply
  2. Поручик

    (1) Сам этой консолью пользуюсь.

    Reply
  3. cool.vlad4

    кнопка? а я поле добавил (посмотрел в консоли какой-то)

    Reply
  4. shisha136

    Клевая штука!

    Reply
  5. proal

    Мне консоль от Лавелина самому очень нравится.

    Вариант с менюшками мне показался наиболее простым и быстрым в доработке…

    Кстати, если кто подскажет как РегЕкспами можно отсечь строки, начинающиеся на комментарий — буду очень благодарен 🙂 Самому не получилось найти работающий вариант.

    Reply
  6. cool.vlad4

    (5) в смысле комментарии в коде? — «//Комментарии»?

    Тогда можно попробовать что-то типа (/*([#k8SjZc9Dxk*]|[
    ]|(*+([#k8SjZc9Dxk*/]|[
    ])))**+/)|(//.*)

    Reply
  7. cool.vlad4

    +6 годится и для /*Комментов*/(для с-образных языков удобно), но можно убрать это и получить (//.*)

    Reply
  8. ediks

    (5) Если нужно убрать комментарии из запроса, то можно воспользоваться конструктором запроса, как я у себя сделал http://infostart.ru/public/90275/

    Reply
  9. DragonAgo

    Хорошая разработка в области консолей

    Reply
  10. CaSH_2004

    Думаю было бы правильно указать ссылку на первоисточник

    Reply
  11. Поручик

    Первоисточник http://infostart.ru/public/14183/

    Reply
  12. redcat

    Доработка очень полезная.

    Только при выполнении запроса сразу несколько раз ругается, что временная таблица уже существует (может это только у меня).

    Выход: удаление временных таблий перед выполнением запроса

    Reply
  13. proal

    (12) redcat, если один и тот же запрос выполнять несколько раз, то ругаться будет однозначно — ведь по умолчанию используется один и тот же менеджер ВТ, соответственно если не уничтожать таблицу явно (через выполнение «УНИЧТОЖИТЬ <ИмяТаблицы>»), она в нем будет оставаться.

    Если не нужно чтобы так было — просто уберите галочку «Использовать менеджер временных таблиц». Тогда каждый раз для запроса будет создаваться временный менеджер.

    Кстати, немного доработал анализ текста запроса — теперь закомментированные строки строки должны пропускаться.

    Большое спасибо cool.vlad4 за идею в (6).

    Конструктор запроса, как советовал ediks (8), не получается — если ему передавать текст запроса, ссылающийся на временную таблицу, созданную в другом запросе — выскакивает ошибка «Таблица Такая-то не найдена» 🙁

    Reply
  14. Поручик

    (13) Посмотрите консоль от Чистова aka GROOVY, там по-моему этих проблем небыло изначально.

    Reply
  15. cool.vlad4

    В смысле с ВТ? Там наверное перед выполнением запроса с ВТ, проводится попытка уничтожения ВТ. Я себе также сделал, но потом добавил и ручное уничтожение(сделал красный крестик напротив списка таблиц)

    Reply
  16. _iAlex

    А вопрос с субконто в параметре запроса решен ? а от все консоли которыми я пользуюсь глючат..

    Reply
  17. proal

    (14) Поручик, посмотрел — там происходит поиск имен таблиц по слову «ПОМЕСТИТЬ». Я тоже так в начале думал сделать, но что если в начале строк идет комментарий «//»? А еще иногда строка может быть такой:

    //ВЫБРАТЬ ДАТАВРЕМЯ(2011,01,31,23,59,59) КАК Период ПОМЕСТИТЬ ВТПериоды

    Поэтому я и делал через RegExp, чтобы закомментированные строки не учитывать.

    (15) cool.vlad4 — перед выполнением запроса я не делаю попытки уничтожить создаваемые в запросе таблицы. Считаю что так лучше — есть вероятность перезаполнить ВТ и не увидеть старые данные.

    (16) _iAlex — а что за вопрос с субконто?

    Reply
  18. redcat

    (17) to (15) Я у себя тоже добавил перед выполением запроса принудительное удаление временных таблиц. Считаю, что после выполнения запроса интересуют именно данные, которые были использованы при выполнении основной части зароса.

    Reply
  19. Olvia

    Однозначно полезная штука, однако есть крохотный недостаток для авралоподобных случаев, вынудивший откомментировать:

    нажав кнопку «получить параметры из запроса» и заполнив некоторые «списком значений», как-то забываешь изменить колонку «В» на «Список», что при повторном нажатии и перезаполнении приводит к очистке списков их значений.

    После четырех лет работы со стандартной консолью большинство действий доведено до автоматизма + по административным причинам использую обе обработки параллельно, следовательно — пришлось доделать ))

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *