Проблема myGeneration с поставщиком OraOleDB.Oracle (?)
Я не могу заставить инструмент myGeneration работать правильно.
Это строка подключения, которую я использую:
Provider = OraOLEDB.Oracle.1; Password = pass123; ID пользователя =user1; Источник данных =oradb1src;Persist Security Info=True
И когда я нажимаю на Проверить соединение, я получаю:
[System.Data.OleDb.OleDbException] - ORA-12154: TNS: не удалось разрешить имя службы
[oradb1src хорошо определен в tnsnames.ora. Это не проблема.]
Но когда я меняю провайдера на MSDAORA, тогда соединение работает нормально, но в окне Generate мне не хватает вкладки Tables, на которой я могу выбрать таблицы из своей базы данных. Я где-то заметил, что это нормально с провайдером MSDAORA, потому что mygeneration использует провайдера oledb для извлечения метаданных.
Но почему я получаю это безумное сообщение об ошибке при использовании поставщика OralOLEDB.Oracle??? Кто-нибудь знает?
Заранее спасибо...
PS. На моем компьютере установлены драйверы для oracle 9.2 и oracle 10.
3 ответа
Я иногда сталкивался с подобной ошибкой - в основном, хотя Oracle (и Toad) вполне успешно поддерживают несколько клиентов Oracle на одной машине, Com версии Data Provider (т. Е. Любой метод соединения, НЕ использующий собственное соединение Oracle) будут молча использовать только один ваших клиентов. Мне никогда не удавалось найти какую-либо документацию, подтверждающую, как выбран клиент, который будет использоваться, и поэтому не могу его форсировать. Скорее всего, вы обнаружите, что клиент Oracle, который вы пытаетесь использовать, НЕ тот, который используется провайдером, и тот, который используется провайдером, не имеет полного файла TNSNames.
Строка подключения для оракула:
Provider=OraOLEDB.Oracle;Data Source=mydbname;User Id=mydata;Password=88888
Это работает хорошо
Я только когда-либо видел эту ошибку, когда источник не был правильно настроен в tnsnames.ora. Поскольку другой провайдер может просматривать базу данных с вашего компьютера, я постараюсь создать строку подключения без TNS (для примера нажмите здесь), чтобы убедиться, что это не проблема.