gifts2017

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

Опубликовал Алексей Прокопьев (proal) в раздел Программирование - Инструментарий

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

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

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

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

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

 

Скачать файлы

Наименование Файл Версия Размер
Консоль запросов 320
.epf 116,04Kb
03.10.11
320
.epf 116,04Kb Скачать

См. также

Подписаться Добавить вознаграждение
Комментарии
1. Ийон Тихий (cool.vlad4) 29.09.11 13:20
было уже, но все равно посмотрю, имхо лавелинская консоль в плане интерфейса самая удачная
2. Ийон Тихий (cool.vlad4) 29.09.11 13:25
кнопка? а я поле добавил (посмотрел в консоли какой-то)
Прикрепленные файлы:
3. Сергей Ожерельев (Поручик) 29.09.11 13:25
(1) Сам этой консолью пользуюсь.
4. shisha136 29.09.11 13:28
5. Алексей Прокопьев (proal) 29.09.11 13:34
Мне консоль от Лавелина самому очень нравится.
Вариант с менюшками мне показался наиболее простым и быстрым в доработке...
Кстати, если кто подскажет как РегЕкспами можно отсечь строки, начинающиеся на комментарий - буду очень благодарен :) Самому не получилось найти работающий вариант.
6. Ийон Тихий (cool.vlad4) 29.09.11 14:10
(5) в смысле комментарии в коде? - "//Комментарии"?
Тогда можно попробовать что-то типа (/\*([^*]|[\r\n]|(\*+([^*/]|[\r\n])))*\*+/)|(//.*)
7. Ийон Тихий (cool.vlad4) 29.09.11 14:11
+6 годится и для /*Комментов*/(для с-образных языков удобно), но можно убрать это и получить (//.*)
8. ediks (ediks) 30.09.11 13:53
(5) Если нужно убрать комментарии из запроса, то можно воспользоваться конструктором запроса, как я у себя сделал http://infostart.ru/public/90275/
9. Dragon Ago (DragonAgo) 30.09.11 14:01
Хорошая разработка в области консолей
10. Олег Шалимов (CaSH_2004) 03.10.11 01:15
Думаю было бы правильно указать ссылку на первоисточник
11. Сергей Ожерельев (Поручик) 03.10.11 07:28
12. Alex (redcat) 03.10.11 17:04
Доработка очень полезная.
Только при выполнении запроса сразу несколько раз ругается, что временная таблица уже существует (может это только у меня).
Выход: удаление временных таблий перед выполнением запроса
13. Алексей Прокопьев (proal) 04.10.11 10:11
(12) redcat, если один и тот же запрос выполнять несколько раз, то ругаться будет однозначно - ведь по умолчанию используется один и тот же менеджер ВТ, соответственно если не уничтожать таблицу явно (через выполнение "УНИЧТОЖИТЬ <ИмяТаблицы>"), она в нем будет оставаться.

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

Кстати, немного доработал анализ текста запроса - теперь закомментированные строки строки должны пропускаться.
Большое спасибо cool.vlad4 за идею в (6).

Конструктор запроса, как советовал ediks (8), не получается - если ему передавать текст запроса, ссылающийся на временную таблицу, созданную в другом запросе - выскакивает ошибка "Таблица Такая-то не найдена" :(
14. Сергей Ожерельев (Поручик) 04.10.11 10:38
(13) Посмотрите консоль от Чистова aka GROOVY, там по-моему этих проблем небыло изначально.
15. Ийон Тихий (cool.vlad4) 04.10.11 10:46
В смысле с ВТ? Там наверное перед выполнением запроса с ВТ, проводится попытка уничтожения ВТ. Я себе также сделал, но потом добавил и ручное уничтожение(сделал красный крестик напротив списка таблиц)
16. Alex AlexX (_iAlex) 04.10.11 16:01
А вопрос с субконто в параметре запроса решен ? а от все консоли которыми я пользуюсь глючат..
17. Алексей Прокопьев (proal) 05.10.11 06:10
(14) Поручик, посмотрел - там происходит поиск имен таблиц по слову "ПОМЕСТИТЬ". Я тоже так в начале думал сделать, но что если в начале строк идет комментарий "//"? А еще иногда строка может быть такой:
//ВЫБРАТЬ ДАТАВРЕМЯ(2011,01,31,23,59,59) КАК Период ПОМЕСТИТЬ ВТПериоды

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

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

(16) _iAlex - а что за вопрос с субконто?
18. Alex (redcat) 05.10.11 10:38
(17) to (15) Я у себя тоже добавил перед выполением запроса принудительное удаление временных таблиц. Считаю, что после выполнения запроса интересуют именно данные, которые были использованы при выполнении основной части зароса.
19. Olvia 30.09.12 13:43
Однозначно полезная штука, однако есть крохотный недостаток для авралоподобных случаев, вынудивший откомментировать:

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

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