Зачем нужна эта обработка
«Пф, очередная консоль запросов, еще и без всяких наворотов» – скажете вы. Действительно, ничего нового, ставка сделана на максимальную простоту, определенное удобство работы и скорость.
Перечислю особенности данной консольки:
- возможность выполнять как запросы, так и хранимые процедуры(stored procedure), возвращающие таблицу.
- форма сборки строки подключения с «человеческим лицом»
- сохранение и загрузка файлов запросов с использованием читабельного формата .txt
- возможность выгрузить только первые 100 или больше строк для ускорения выгрузки результата запроса (идея взята из Инструментов разработчика)
Приведу пример использования данной обработки на практике:
Звонит вам программист системы, с которой у вас налажена интеграция: «- Привет, я там хранимку в скуль базе накидал, называется WorkInProgressSP, можешь юзать». Перед тем, как использовать данную хранимую процедуру, неплохо было бы ее проверить. Заходим в обработку и настраиваем строку подключения:
Данная форма вызывается нажатием на кнопку «…» в строке подключения или клавишей F4. Здесь же можно проверить подключение. Затем вписываем вызов запроса или хранимой процедуры в поле ввода:
Если это хранимая процедура, то формат вызова:
exec ИмяХранимойПроцедуры Параметр1,…,ПараметрN
или если это запрос к таблице или представлению (view):
select * from ИмяТаблицы
Далее жмем кнопку Выполнить, результат будет помещен в таблицу в нижней части формы. Таблицу результата можно сохранить при желании в Excel формате, нажав на «Вывести список…», затем с помощью «Сохранить как…» выбрать нужный формат.
Инструменты разработчика
Если вам нужно что-то более мощное для выполнения запросов к другим SQL базам, посмотрите консоль запросов в инструментах разработчика, один из лучших инструментов в своей нише:
На мой взгляд консоль запросов в ИР обладает некоторыми недостатками:
- требует интеграции в существующую БД (а значит снятия с поддержки). Хотя если использовать консоль в режиме ADO-запросов, можно держать отдельную базу только с ИР. Существует портативный вариант Инструментов разработчика, состоящий из набора внешних обработок и в таком варианте консоль запросов не требует интеграции, при этом её функционал не меньше, чем в полном варианте.
- текст запроса и строка подключения находятся на разных вкладках, при выполнении запроса если надо вспомнить к какой базе он выполняется, приходится переключаться между этими вкладками. К тому же, на мой вкус, консоль запросов ИР сильно загромождена редко используемыми функциями.
- иногда не работает подключение к базе, хотя строка подключения корректна, выдавая сообщение «Login failed for user 'user_login'». Есть некоторые баги в конструкторе запросов ИР.
UPD 25.04.2015
- В обработку добавлена управляемая форма с аналогичным функционалом
- Оптимизировано получение первых N строк, до этого из запроса выгружалась вся таблица, а ограничение работало во время копирования в табличную часть, также убраны промежуточные таблицы.
UPD 05.10.2015
- Исправлено некорректное определение типа данных, содержащихся в столбце результата запроса. Раньше тип определялся по типу первого элемента выборки, теперь тип данных столбца анализируется по свойствам com-объекта описания полей результата запроса.
https://msdn.microsoft.com/en-us/library/windows/desktop/ms675318(v=vs.85).aspx
UPD 18.01.2017
Исправлена работа с типами значения adBinary и adLongVarBinary. Тип adBinary возникает например при получении ссылки из базы 1с и для него выводится шестнадцатеричное представление значения. Тип adLongVarBinary возникает например при получении значения типа ХранилищеЗначения из базы 1с и для него выводится строка «<Long binary>» без отображения значения, что сделано в целях оптимизации.