Простейшая консоль ADO-запросов

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

Данная обработка пригодится, если вам надо быстро проверить работоспособность и результат запроса или хранимой процедуры во внешней базе данных.

Зачем нужна эта обработка

«Пф, очередная консоль запросов, еще и без всяких наворотов» – скажете вы. Действительно, ничего нового, ставка сделана на максимальную простоту, определенное удобство работы и скорость.

Перечислю особенности данной консольки:

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

- форма сборки строки подключения с «человеческим лицом»

- сохранение и загрузка файлов запросов с использованием читабельного формата .txt

- возможность выгрузить только первые 100 или больше строк для ускорения выгрузки результата запроса (идея взята из Инструментов разработчика)

Приведу пример использования данной обработки на практике:

Звонит вам программист системы, с которой у вас налажена интеграция: «- Привет, я там хранимку в скуль базе накидал, называется WorkInProgressSP, можешь юзать». Перед тем, как использовать данную хранимую процедуру, неплохо было бы ее проверить. Заходим в обработку и настраиваем строку подключения:

Форма сборки строки подключения

Данная форма вызывается нажатием на кнопку «…» в строке подключения или клавишей F4. Здесь же можно проверить подключение. Затем вписываем вызов запроса или хранимой процедуры в поле ввода:

 основная форма

Если это хранимая процедура, то формат вызова:

      exec ИмяХранимойПроцедуры Параметр1,…,ПараметрN

или если это запрос к таблице или представлению (view):

      select * from ИмяТаблицы

Далее жмем кнопку Выполнить, результат будет помещен в таблицу в нижней части формы. Таблицу результата можно сохранить при желании в Excel формате, нажав на «Вывести список…», затем с помощью «Сохранить как…» выбрать нужный формат.

Инструменты разработчика

Если вам нужно что-то более мощное для выполнения запросов к другим SQL базам, посмотрите консоль запросов в инструментах разработчика, один из лучших инструментов в своей нише:

http://infostart.ru/public/15126/

На мой взгляд консоль запросов в ИР обладает некоторыми недостатками:

- требует интеграции в существующую БД (а значит снятия с поддержки). Хотя если использовать консоль в режиме 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>» без отображения значения, что сделано в целях оптимизации. 

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

Наименование Файл Версия Размер
ADO запросы
.epf 27,08Kb
23.01.17
10
.epf 2.2 27,08Kb 10 Скачать

См. также

Добавить вознаграждение
Комментарии
1. Константин Юрин (kostyaomsk) 67 09.04.15 11:43 Сейчас в теме
Дельная вещь. Как раз подобная работа висит. Чтоб SQL-запрос из 1С 8 на реальной базе проверить.
3. Сергей Старых (tormozit) 4106 13.04.15 09:20 Сейчас в теме
Прокомментирую некоторые утверждения касательно консоли запросов из подсистемы "Инструменты разработчика".

1.
требует интеграции в существующую БД (а значит снятия с поддержки)
Это неверное утверждение, т.к. уже 3-й год как выпускается портативная версия инструментов, не требующая встраивания в конфигурацию.

2.
иногда не работает подключение к базе, хотя строка подключения корректна, выдавая сообщение «Login failed for user 'user_login'»
Подсистема большая и сложная. Конечно же там всегда будут содержаться какие то ошибки. Те, кто потрудился их описать, получают в качестве награды их исправление. Посмотрите форум на основном сайте и обсуждение публикации здесь. Там ни одна проблема не остается без внимания.

3.
Есть некоторые баги в конструкторе запросов ИР
Кроме уже написанного в п.2 именно по конструктору запросов замечу, что насколько мне известно ни у кого больше нет конструктора запросов для ADODB. Если я ошибаюсь, поправьте меня пожалуйста.
4. Сергей Лесовой (Synoecium) 91 13.04.15 14:05 Сейчас в теме
(3) Спасибо за комментарий от "зубра" :)
постараюсь ответить на ваши замечания.
Это неверное утверждение, т.к. уже 3-й год как выпускается портативная версия инструментов, не требующая встраивания в конфигурацию.

Действительно, существует портативный вариант Инструментов разработчика, состоящий из набора внешних обработок. Я не использовал портативный вариант, так как в нашу базу интегрирована полная версия ИР. В заблуждение меня ввела статья http://infostart.ru/public/145611/ , где указано, что мобильные ИР устарели. Извиняюсь за некорректное утверждение, исправлю в статье.
Те, кто потрудился их описать, получают в качестве награды их исправление.

не у всех есть время отлавливать баги и ждать их исправления. К слову, я отписывал насчет одного из багов, и он был оперативно исправлен, что является большим плюсом.
Кроме уже написанного в п.2 именно по конструктору запросов замечу, что насколько мне известно ни у кого больше нет конструктора запросов для ADODB.

Действительно, разработка по своему уникальна, и сомневаюсь, что кто-то проделал такой огромный объем работы и сделал свой конструктор. Ни в коем случае не хочу преуменьшать полезность конструктора ИР для ADO запросов, но.. в работе он как то не прижился, проще накидать запрос текстом самой MS SQL.

Подсистема Инструменты разработчика вещь замечательная, спасибо Вам за нее, мне лично нравится Консоль кода с мощной автоподстановкой кода и другими фичами :)
5. Сергей Лесовой (Synoecium) 91 24.01.17 11:26 Сейчас в теме
Для пользователей данной консоли: в процессе активного использования, нашел дополнительное применение консоли. В файле сохранения запроса (обычный текстовый файл .txt) хранится и строка подключения, поэтому при создании однотипных внешних источников данных в нем удобно хранить и проверять строку подключения. Под однотипными подразумеваются внешние источники данных к одной и той же базе данных.
6. c+ + (ture) 224 24.01.17 12:35 Сейчас в теме
(0) я наверно прям щаз глупость скажу, но вдруг пригодится - есть менеджмент студия.
7. Сергей Лесовой (Synoecium) 91 24.01.17 13:20 Сейчас в теме
(6) а если у меня не установлен SQL Server Management Studio (вы же про него говорите), то как мне жить?