Есть сервис ADOConnection, в нем прописана строка соединения с нашей БД, если я в сети офиса, то всё работает нормально.
Пытаюсь работать из удаленного офиса. Конфигурация настроена, вроде всё хорошо, но как только дело доходит до выполнения запроса, который содержится в ADODataset-е, соединение падает, ибо то что написано в строке соединения ADOConnection в удаленном офисе, указывает в никуда с точки зрения местной сети.
Можно ли как-то подставлять в ADOConnection строку соединения ту, которую использует конфигурация?
Или может так - как использовать в ADOConnection строку соединения из конфигурации?
Нравится
Здравствуйте,
можно присвоить другую строку соединения экземпляру объекта ADOConnection :
ADOConnection.ConnectionString = connectionString;
Но саму строку соединения нужно формировать вручную: имя базы можно получить запросом, а вот имя сервера думаю тоже, но есть нюанс если на клиенте используют алиасы через cliconfg. DBSchema, а также некоторые другие свойства подключения можно посмотреть в Connector.DBExecutor.
Здравствуйте,
по поводу строки соединения - все описано в SDK
Однако Connector.DBExecutor.GetSettingsString() возвращает только ""DBSchema=dbo"", т.к. ядро скрывает эту информацию.
В принципе, если Вы работаете из удаленного офиса, то строка подключения будет статична для этого офиса. Вы можете сформировать её вручную, и записать значения в константу в scr_Const.
SSV,
можно создать новый экземпляр объекта ADOConnection и изменить у конкретного этого экземпляра строку подключения:
ADOConnection.ConnectionString = connectionString;
Где connectionString - строка подключения удаленного офиса.
Далее, создать ADOCommand, используя созданный ADOConnection, и далее ADO Dataset, на основе ADO Command.
Также, как вариант можно создать копии ADO Connection, ADO Command, ADO Dataset задизайненные в TS Admin с настройками для удаленного офиса, и при работе с удаленного офиса использовать их.