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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

//infostart.ru/public/15126/

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

— требует интеграции в существующую БД (а значит снятия с поддержки). Хотя если использовать консоль в режиме ADO-запросов, можно держать отдельную базу только с ИР. Существует портативный вариант Инструментов разработчика, состоящий из набора внешних обработок и в таком варианте консоль запросов не требует интеграции, при этом её функционал не меньше, чем в полном варианте.

— текст запроса и строка подключения находятся на разных вкладках, при выполнении запроса если надо вспомнить к какой базе он выполняется, приходится переключаться между этими вкладками. К тому же, на мой вкус, консоль запросов ИР сильно загромождена редко используемыми функциями.

— иногда не работает подключение к базе, хотя строка подключения корректна, выдавая сообщение «Login failed for user ‘user_login’». Есть некоторые баги в конструкторе запросов ИР.

UPD 25.04.2024

— В обработку добавлена управляемая форма с аналогичным функционалом

— Оптимизировано получение  первых N строк, до этого из запроса выгружалась вся таблица, а ограничение работало во время копирования в табличную часть,  также убраны промежуточные таблицы.

Управляемая форма 

UPD 05.10.2024

— Исправлено некорректное определение типа данных, содержащихся в столбце результата запроса. Раньше тип определялся по типу первого элемента выборки, теперь тип данных столбца анализируется по свойствам com-объекта описания полей результата запроса.

https://msdn.microsoft.com/en-us/library/windows/desktop/ms675318(v=vs.85).aspx

UPD 18.01.2024

Исправлена работа с типами значения adBinary и adLongVarBinary. Тип adBinary возникает например при получении ссылки из базы 1с и для него выводится шестнадцатеричное представление значения. Тип adLongVarBinary возникает например при получении значения типа ХранилищеЗначения из базы 1с и для него выводится строка «<Long binary>» без отображения значения, что сделано в целях оптимизации. 

6 Comments

  1. jobkostya1c8

    Дельная вещь. Как раз подобная работа висит. Чтоб SQL-запрос из 1С 8 на реальной базе проверить.

    Reply
  2. tormozit

    Прокомментирую некоторые утверждения касательно консоли запросов из подсистемы «Инструменты разработчика».

    1.

    требует интеграции в существующую БД (а значит снятия с поддержки)

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

    2.

    иногда не работает подключение к базе, хотя строка подключения корректна, выдавая сообщение «Login failed for user ‘user_login’»

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

    3.

    Есть некоторые баги в конструкторе запросов ИР

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

    Reply
  3. Synoecium

    (3) Спасибо за комментарий от «зубра» 🙂

    постараюсь ответить на ваши замечания.

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

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

    Те, кто потрудился их описать, получают в качестве награды их исправление.

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

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

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

    Подсистема Инструменты разработчика вещь замечательная, спасибо Вам за нее, мне лично нравится Консоль кода с мощной автоподстановкой кода и другими фичами 🙂

    Reply
  4. Synoecium

    Для пользователей данной консоли: в процессе активного использования, нашел дополнительное применение консоли. В файле сохранения запроса (обычный текстовый файл .txt) хранится и строка подключения, поэтому при создании однотипных внешних источников данных в нем удобно хранить и проверять строку подключения. Под однотипными подразумеваются внешние источники данных к одной и той же базе данных.

    Reply
  5. ture

    (0) я наверно прям щаз глупость скажу, но вдруг пригодится — есть менеджмент студия.

    Reply
  6. Synoecium

    (6) а если у меня не установлен SQL Server Management Studio (вы же про него говорите), то как мне жить?

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *