А если их много, да называются похоже? На этот случай я доработал консоль запросов, разработанную Евгением Лавелиным — теперь все временные таблицы выводятся в меню, откуда их можно быстро открыть.
Кому приходится писать и отлаживать запросы с большим количеством временных таблиц, постоянно сталкивается с необходимостью проверить содержимое временных таблиц.
А если их много, да называются похоже? На этот случай я доработал консоль запросов, разработанную Евгением Лавелиным (http://www.lavelin.ru) — теперь все временные таблицы выводятся в меню, откуда их можно быстро открыть, и при необходимости — уничтожить.
Основной режим работы — с использованием постоянного менеджера временных таблиц. В таком режиме при успешном выполнении запроса в списке временных таблиц появляются все таблицы, которые создаются в запросе. И убираются все таблицы, которые уничтожаются в выполняемом запросе.
При выборе временной таблицы в меню ее содержимое открывается в отдельном окошке. Каждая таблица открывается в своем окне. Можно отсортировать данные по одному столбцу, можно вывести список в табличный документ.
Улучшен анализ текста запроса — теперь закомментированные строки пропускаются (не создаются лишние строки в списке таблиц и не убираются из меню те таблицы, уничтожение которых закомментировано).
было уже, но все равно посмотрю, имхо лавелинская консоль в плане интерфейса самая удачная
(1) Сам этой консолью пользуюсь.
кнопка? а я поле добавил (посмотрел в консоли какой-то)
Клевая штука!
Мне консоль от Лавелина самому очень нравится.
Вариант с менюшками мне показался наиболее простым и быстрым в доработке…
Кстати, если кто подскажет как РегЕкспами можно отсечь строки, начинающиеся на комментарий — буду очень благодарен 🙂 Самому не получилось найти работающий вариант.
(5) в смысле комментарии в коде? — «//Комментарии»?
Тогда можно попробовать что-то типа (/*([#k8SjZc9Dxk*]|[
]|(*+([#k8SjZc9Dxk*/]|[
])))**+/)|(//.*)
+6 годится и для /*Комментов*/(для с-образных языков удобно), но можно убрать это и получить (//.*)
(5) Если нужно убрать комментарии из запроса, то можно воспользоваться конструктором запроса, как я у себя сделалhttp://infostart.ru/public/90275/
Хорошая разработка в области консолей
Думаю было бы правильно указать ссылку на первоисточник
Первоисточникhttp://infostart.ru/public/14183/
Доработка очень полезная.
Только при выполнении запроса сразу несколько раз ругается, что временная таблица уже существует (может это только у меня).
Выход: удаление временных таблий перед выполнением запроса
(12) redcat, если один и тот же запрос выполнять несколько раз, то ругаться будет однозначно — ведь по умолчанию используется один и тот же менеджер ВТ, соответственно если не уничтожать таблицу явно (через выполнение «УНИЧТОЖИТЬ <ИмяТаблицы>»), она в нем будет оставаться.
Если не нужно чтобы так было — просто уберите галочку «Использовать менеджер временных таблиц». Тогда каждый раз для запроса будет создаваться временный менеджер.
Кстати, немного доработал анализ текста запроса — теперь закомментированные строки строки должны пропускаться.
Большое спасибо cool.vlad4 за идею в (6).
Конструктор запроса, как советовал ediks (8), не получается — если ему передавать текст запроса, ссылающийся на временную таблицу, созданную в другом запросе — выскакивает ошибка «Таблица Такая-то не найдена» 🙁
(13) Посмотрите консоль от Чистова aka GROOVY, там по-моему этих проблем небыло изначально.
В смысле с ВТ? Там наверное перед выполнением запроса с ВТ, проводится попытка уничтожения ВТ. Я себе также сделал, но потом добавил и ручное уничтожение(сделал красный крестик напротив списка таблиц)
А вопрос с субконто в параметре запроса решен ? а от все консоли которыми я пользуюсь глючат..
(14) Поручик, посмотрел — там происходит поиск имен таблиц по слову «ПОМЕСТИТЬ». Я тоже так в начале думал сделать, но что если в начале строк идет комментарий «//»? А еще иногда строка может быть такой:
//ВЫБРАТЬ ДАТАВРЕМЯ(2011,01,31,23,59,59) КАК Период ПОМЕСТИТЬ ВТПериоды
Поэтому я и делал через RegExp, чтобы закомментированные строки не учитывать.
(15) cool.vlad4 — перед выполнением запроса я не делаю попытки уничтожить создаваемые в запросе таблицы. Считаю что так лучше — есть вероятность перезаполнить ВТ и не увидеть старые данные.
(16) _iAlex — а что за вопрос с субконто?
(17) to (15) Я у себя тоже добавил перед выполением запроса принудительное удаление временных таблиц. Считаю, что после выполнения запроса интересуют именно данные, которые были использованы при выполнении основной части зароса.
Однозначно полезная штука, однако есть крохотный недостаток для авралоподобных случаев, вынудивший откомментировать:
нажав кнопку «получить параметры из запроса» и заполнив некоторые «списком значений», как-то забываешь изменить колонку «В» на «Список», что при повторном нажатии и перезаполнении приводит к очистке списков их значений.
После четырех лет работы со стандартной консолью большинство действий доведено до автоматизма + по административным причинам использую обе обработки параллельно, следовательно — пришлось доделать ))