Строка соединения.

Есть сервис ADOConnection, в нем прописана строка соединения с нашей БД, если я в сети офиса, то всё работает нормально.
Пытаюсь работать из удаленного офиса. Конфигурация настроена, вроде всё хорошо, но как только дело доходит до выполнения запроса, который содержится в ADODataset-е, соединение падает, ибо то что написано в строке соединения ADOConnection в удаленном офисе, указывает в никуда с точки зрения местной сети.
Можно ли как-то подставлять в ADOConnection строку соединения ту, которую использует конфигурация?
Или может так - как использовать в ADOConnection строку соединения из конфигурации?

Нравится

6 комментариев

Забыл добавить - версия 3.0.2.244

Здравствуйте,
можно присвоить другую строку соединения экземпляру объекта ADOConnection :

ADOConnection.ConnectionString = connectionString;

Но саму строку соединения нужно формировать вручную: имя базы можно получить запросом, а вот имя сервера думаю тоже, но есть нюанс если на клиенте используют алиасы через cliconfg. DBSchema, а также некоторые другие свойства подключения можно посмотреть в Connector.DBExecutor.

Т.е. просто получить строку подключения из конфигурации нет никакой возможности?

Здравствуйте,
по поводу строки соединения - все описано в SDK
Однако Connector.DBExecutor.GetSettingsString() возвращает только ""DBSchema=dbo"", т.к. ядро скрывает эту информацию.

В принципе, если Вы работаете из удаленного офиса, то строка подключения будет статична для этого офиса. Вы можете сформировать её вручную, и записать значения в константу в scr_Const.

Но ведь ADOConnection грузится из одной и той же БД, т.е. я из изменю ADOConnection для работы удаленного офиса, а основной офис уже работать не сможет.

SSV,
можно создать новый экземпляр объекта ADOConnection и изменить у конкретного этого экземпляра строку подключения:

ADOConnection.ConnectionString = connectionString;

Где connectionString - строка подключения удаленного офиса.

Далее, создать ADOCommand, используя созданный ADOConnection, и далее ADO Dataset, на основе ADO Command.

Также, как вариант можно создать копии ADO Connection, ADO Command, ADO Dataset задизайненные в TS Admin с настройками для удаленного офиса, и при работе с удаленного офиса использовать их.

Показать все комментарии