Трудности с удалением старых подключений в объекте учета

Здравствуйте!

Опишу ситуацию с самого начала. Раньше в старых версиях, такой единицы справочника, как “подключение” отдельно не было, а выбиралось на вкладке подключения в каждой точке учета самостоятельно. И ведь все прекрасно работало! Проблем не было. Но затем, кто то у вас решил, что пользователям вашей программы слишком легко живется, и зачем-то ввели этот бесполезный лишний справочник подключений, который по большому счету дублирует порты опроса. Масло масляное. И теперь пользователям вашей программы, у которых как вы считаете слишком много свободного времени и нечем заняться, нужно теперь вручную (!) переписывать все подключения. Ну ладно, выбирать не приходится, по многочисленному и в большей части бесполезному(т.к. много важных проблем, с которыми я обращался так и не решили) общению на вашем форуме, я понял, что вам безразлично удобство пользователей и их проблемы вас не волнуют. Ну что ж, ок, я понял будем играть по вашим правилам, пока найдем нормальный софт, чтобы забыть о лэрсе, как о страшном сне. Что ж, признаем, вы победили, мы теперь вынуждены переделывать подключения согласно новому справочнику. Но как удалить теперь старые подключения?! При автоматической конвертации базы данных во время обновления на версию с этим новым бесполезным справочником, все подключения, которые были на вкладках точек учета, автоматически перекочевали в ваш бесполезный справочник подключений. И они имеют одинаковые имена! Да как так то а? Из-за одинаковых имен, ничего невозможно сделать в этом справочнике, он отказывает сохранять, т.к. у подключений одинаковые имена. А их на только на одном доме более 600 штук! Я даже не могу удалить их по частям, т.к. не могу сохранить промежуточное состояние, возможно только удалить их все разом. Но это невозможно! У вас нельзя выбрать несколько подключений для удаления. Только по одному. Вы представляете сколько времени нужно, чтобы удалить 600 подключений (а это только один дам, а домов 4)? Сколько нужно тупо сидеть и тыкать мышкой, чтобы все удалить? А не хотите сами попробовать поиграть в этот квест? И ведь нельзя удалить например 100, а продолжить позже. Потому что нельзя сохранить! Потому что у них имена зачем-то одинаковые сделали! Передавайте привет автору этой “гениальной” идеи! Из-за одинаковых имен, я даже не вижу, движется ли список, и в каком месте я нахожусь.

Ну и собственно вопрос. Прошу решить данную проблему. Подскажите способ, чтобы можно было удалить старые подключения разом. Если его нет, значит очень прошу сделайте уже что-нибудь с этим. Ну невозможно так работать!
2017-01-26_112758.png

Подскажите, это одинаковые подключения или у каждого из них абсолютно разные настройки? Они подключены к разным портам опроса?

Порт опроса один, как и указано в названии: “А16-кв.тепло”. Настройки тоже одинаковые. Разные лишь точки учета. Ну то есть в этом конкретном примере, 131 точка учета опрашивалась через порт “А16-кв.тепло”. Теперь у меня 131 подключение с таким названием. В каждой из этих 131 точек учета свое, но у всех одинаковое название.

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

В вашем случае вы в своё время воспользовались “дыркой” в нашей программе, из-за которой можно было создать несколько одинаковых подключений. Теперь все они отображаются в списке подключений объекта.

Наилучшим решением будет подготовить для вас скрипт, который создаст одно сетевое подключение вместо нескольких, как это должно быть в архитектуре нашей системы.
Скрипт будет работать только после установки версии R21, поэтому выполнить его можно будет после установки обновления.

Мы отправим вам скрипт как R21 будет доступно для установки.

И каким образом можно было догадаться, что это недокументированная возможность? Мы используем лэрс с 2013 года, и всё работало до вот этой чехарды с переделыванием справочников. А теперь с удивлением узнаем от вас, что это был, оказывается, “баг, а не фича”. :slight_smile:

И еще не могу согласится со словом “воспользовались”. Мы были вынуждены так сделать. Вы помните в каком виде были в тот момент сетевые подключения? А я помню. Мы сначала попробовали делать подключения сетевыми, как “по науке”, но они оказались совершенно unusable. Невозможность задать разные параметры опроса для сетевых устройств, необходимость снимать все точки одной сети с автоопроса, чтобы что-то поменять только в одной из них, и это все вручную, тогда еще не было групповых операций в том виде, что есть сейчас. Это только первое, что вспоминается сразу. А еще были какие-то конфликты с самой процедурой опроса. Поэтому пришлось забить на все эти “сети”, и делать самостоятельное подключение для каждой точки. И в таком виде все работало именно так, как ожидаешь, без скрытых фокусов и непонятных эффектов.

Нет, пожалуйста, только не надо ничего создавать автоматически. Можете написать скрипт, который просто убьет все подключения с одинаковым названием? Этого будет вполне достаточно.

Мы подготовили скрипт, который удалит все дубликаты подключений с одинаковыми названиями.

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

Скрипт находится во вложении. Чтобы его выполнить, вы можете воспользоваться программой SQL Management Studio, если она у вас есть, или запустить следующую команду:

sqlcmd.exe -S (local)LERS -d LERS -i delconn.sql

delconn.zip (1.11 KB)

У нас сейчас версия ЛЭРС R3.07 R20.02 (сборка 32013). Правильно я понимаю, что сначала нужно обновить до версии 3.07 R20.08 (сборка 32026) ?

Нет, обновлять не обязательно.

Здравствуйте!

Подошла очередь использовать Ваш скрипт для удаления дубликатов подключения. Но в ответ на команду только две ошибки.
2017-04-20_170522.png
Подскажите, в чем может быть проблема? К сожалению, я с MSSQL не знаком.

Видимо у пользователя, под которым вы пытаетесь выполнить команду, нет прав на доступ к базе данных. Попробуйте выполнить её от администратора.

Вот, пожалуйста, от имени Админа.
2017-04-21_102127.png
На всякий случай, у нас Windows XP SP3. Пользователь user тоже в админах.

Подскажите какой способ аутентификации вы используете при входе в СУБД: Windows - аутентификацию или SQL Server - аутентификацию?

Я же написал, что с MSSQL незнаком. Откуда я могу знать, какой способ там используется.
Вот нашел что-то в настройках. Не знаю это то, что вы спрашиваете или нет.
2017-04-25_111053.png

Подскажите у вас установлен компонент SQL Server Managment Studio?

Нет, не установлен. Из инструкции к скрипту я понял, что и без него все прекрасно должно сработать.

воспользоваться программой SQL Management Studio, если она у вас есть, или запустить следующую команду:

Данная инструкция была дана из расчета, что учетная запись Windows, под которой вы запускаете команду, обладает всеми необходимыми правами на доступ к БД. По умолчанию учетная запись Windows, под которой устанавливался SQL Server, должна обладать полными правами на базу.

Выясните под какой учетной записью устанавливался Sql Server и запустите команду из под этой учетной записи.