Консоль запросов с просмотром временных таблиц для 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 не будет опубликован. Обязательные поля помечены *