Консоль запросов SQL

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

Иногда возникает желание посмотреть, как информация 1С уложена в базе данных. Данная обработка позволяет показать структуру базы данных, а так же обычными SQL-запросами просмотреть содержимое таблиц MsSQL.

Обработка использует SQLOLEDB-провайдер от Microsoft. Обычно в системе этот провайдер уже установлен и называется SQLSERV32.DLL. Драйвер называется обычно просто "SQL Server". Просмотреть установленные драйвера можно вызвав:

c:\windows\syswow64\odbcad32.exe - для х86 версии сервера предприятия, или

c:\windows\system32\odbcad32.exe - для х64 версии сервера предприятия.

Подключение выполняется следующим кодом:

	СтрокаПодключения = 
		"Provider=SQLOLEDB.1;
		|User ID=" + Пользователь + ";
		|Pwd=" + Пароль + ";
		|Data Source=" + Сервер + ";
		|Initial Catalog=" + База + ";
		|MultipleActiveResultSets=True";//наша database

	Если Соединение = Неопределено Тогда
		Connection  = Новый COMОбъект("ADODB.Connection");
	Иначе
		Connection  = Соединение;
	КонецЕсли;

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

А в остальном - пробуйте.

PS: И как я сразу не догадался такую штуку сделать. В форме запросов я добавил возможность показать сам объект при двойном щелчке на ссылку объекта. Там всё просто. Ссылка преобразуется в УИД, а потом тупо перебираются все возможные объекты метаданных. Есть идеи, как ускорить алгоритм, но меня производительность пока и так устраивает.

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

Наименование Файл Версия Размер
Консоль запросов SQL.
.epf 31,53Kb
21.10.16
16
.epf 31,53Kb 16 Скачать

См. также

Комментарии
1. Вячеслав Гилёв (Gilev.Vyacheslav) 1714 21.10.16 17:18 Сейчас в теме
количество строк при этом как то учитывается?
2. Павел Кручинин (igel9780) 135 22.10.16 17:54 Сейчас в теме
(1) Gilev.Vyacheslav, Штатно при двойном клике на таблице, генерируется запрос типа SELECT TOP 100 %FIELDLIST% FROM %TABLENAME%. Потому как можно и не дождаться, пока таблица выкачается. Опять же, ADO выдает COMSafeArray для всех идентификаторов. Его приходится переводить в строку, что тоже не добавляет быстродействия.
3. Павел Кручинин (igel9780) 135 25.11.16 14:26 Сейчас в теме
Добавил возможность по двойному щелчку на поле идентификатора открывать соответствующий объект базы данных.