Как настроить OLEDB для подключения к удаленной базе данных? - PullRequest
1 голос
/ 14 января 2012

Я локально работаю с базой данных Oracle 11g.У меня есть небольшая программа, подключающаяся к нему в коде через OLEDB в VC ++ (она только запускает некоторые тесты базы данных, я проверяю, что у меня есть все основы, прежде чем я приступлю к реальной работе.) Информация о подключении в коде включает толькопоставщик, имя экземпляра, имя пользователя и пароль.Все это прекрасно работает.

//For example, both these ways of connecting work:
result = dataSource.Open(DATABASE_PROVIDER, DATABASE_NAME,
                         DATABASE_USER_NAME, DATABASE_USER_PASSWORD);

result = dataSource.OpenFromInitializationString(L"Provider=OraOLEDB.OracleDataSource=orcl;User ID=SYSTEM;Password=admin;");

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

Я пытался подключиться локально через IP вместо "localhost", полагая, что тогда я мог бы просто использовать тот же код и клиент.В связи с этим я несколько раз безуспешно пытался:
-Я пытался изменить строку подключения, чтобы изменить «Источник данных» на мой IP-адрес, но не смог подключиться.
-Я попытался добавить некоторые параметрыиз других примеров строки подключения, которые я видел, но они не были для Oracle и были проигнорированы.
-Я также пытался изменить tnsnames.ora и listener.ora, чтобы изменить локальный хост на IP-адрес, но я знаю, что нене работает, так как он все равно подключился бы, если бы я вошел в мусор.

У кого-нибудь есть знания, чтобы помочь?

1 Ответ

0 голосов
/ 14 января 2012

Для базы данных Oracle вы должны создать новую запись tnsnames на своих отдельных машинах, которая указывает на вашу локальную базу данных. Затем используйте это новое имя tns в качестве источника данных. Вам также необходимо убедиться, что ваш локальный экземпляр БД доступен для них в первую очередь. (Кстати, по умолчанию это не включено в Oracle Express.)

Я также в целом добился большего успеха, используя msdaora в качестве поставщика данных вместо OraOLEDB.

...