Подключение к внешней БД через ADO.Connection в управляемом приложении (в обычном - работает): Источник данных не найден и не указан драйвер, используемый по умолчанию
Добрый день, может кто сталкивался, на терминальном сервере стоит клиент-серверная 1С. В самописной конфигурации на НЕуправляемых формах подключение к внешней базе MySQL через ADO.Connection работает. Но стоит перевести конфигурацию в управляемый режим и вызвать тот же самый код из обработки с управляемой формой, возникает ошибка:
&НаСервере
Функция ВыполнитьЗапрос(ТекстЗапроса)
Попытка
Connection = Новый COMОбъект("ADODB.Connection");
Исключение
Сообщить( "Неудачная попытка создания объекта: ADODB.Connection" );
КонецПопытки;
Connection.ConnectionString = "Driver={MySQL ODBC 5.3 Unicode Driver};Server=" + IPАдресСервера + "; DATABASE="+ИмяБазы+";USER = "+ИмяЮзера+";PASSWORD=123";
Connection.ConnectionTimeOut = 500;
Connection.CommandTimeout = 500;
Попытка
Connection.Open();
Connection.DefaultDatabase = ИмяБазы;
Исключение
Сообщить(Строка(ТекущаяДата())+ "Не удалось подключиться к БД сайта");
Сообщить(ОписаниеОшибки());
КонецПопытки;
Table = Connection.Execute(ТекстЗапроса);
Возврат Table;
КонецФункции
При попытке открыть соединение возникает исключительная ситуация. В неуправляемом режиме тот же самый код прекрасно работает.
22.06.2018 10:15:07Не удалось подключиться к БД сайта
Ошибка при вызове метода контекста (Open): Произошла исключительная ситуация (Microsoft OLE DB Provider for ODBC Drivers): [Microsoft][Диспетчер драйверов ODBC] Источник данных не найден и не указан драйвер, используемый по умолчанию
&НаСервере
Функция ВыполнитьЗапрос(ТекстЗапроса)
Попытка
Connection = Новый COMОбъект("ADODB.Connection");
Исключение
Сообщить( "Неудачная попытка создания объекта: ADODB.Connection" );
КонецПопытки;
Connection.ConnectionString = "Driver={MySQL ODBC 5.3 Unicode Driver};Server=" + IPАдресСервера + "; DATABASE="+ИмяБазы+";USER = "+ИмяЮзера+";PASSWORD=123";
Connection.ConnectionTimeOut = 500;
Connection.CommandTimeout = 500;
Попытка
Connection.Open();
Connection.DefaultDatabase = ИмяБазы;
Исключение
Сообщить(Строка(ТекущаяДата())+ "Не удалось подключиться к БД сайта");
Сообщить(ОписаниеОшибки());
КонецПопытки;
Table = Connection.Execute(ТекстЗапроса);
Возврат Table;
КонецФункции
При попытке открыть соединение возникает исключительная ситуация. В неуправляемом режиме тот же самый код прекрасно работает.
22.06.2018 10:15:07Не удалось подключиться к БД сайта
Ошибка при вызове метода контекста (Open): Произошла исключительная ситуация (Microsoft OLE DB Provider for ODBC Drivers): [Microsoft][Диспетчер драйверов ODBC] Источник данных не найден и не указан драйвер, используемый по умолчанию
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Для будущих поколений: в итоге взлетело после того, как вместо &НаСервере поменял на &НаКлиенте. Как я понимаю, связано это было с тем, что в случае терминального доступа, клиентом является как раз терминальный сервер, где и был прописан источник данных ODBC и установлен драйвер.
Что же тогда в данном случае для управляего приложения был сервер (&НаСервере) я так и не понял, возможно, сам удаленный комп, где крутится MySQL и к которому обращалась 1с с терминального сервера.
Что же тогда в данном случае для управляего приложения был сервер (&НаСервере) я так и не понял, возможно, сам удаленный комп, где крутится MySQL и к которому обращалась 1с с терминального сервера.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот