gifts2017

Консоль запросов 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
13
.epf 31,53Kb 13 Скачать

См. также

Подписаться Добавить вознаграждение

Комментарии

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