Он традиционен для любой СУБД:
Хост, порт, имя пользователя, пароль, база данных
Если порт не задан, используется умолчание.
-----------------------------------------------------------------------------------
"ls /" (C) Козьма Прутков
Здравствуйте!
Давайте рассмотрим на примере, написанном на C. Вот отрывок кода:
...
if (db.Open("<имя_базы>","<имя_пользователя>","<пароль>"))
{
wxMessageBox ("Соединение с БД установлено успешно","Сообщение");
isdb = true;
...
В такой форме код правильный, ошибок нет, приложение к базе подключается. Но задача состоит в том, чтобы приложение стояло на рабочей станции, а БД находилась на сервере. Как это реализовать? Все мои попытки писать имя сервера или его айпишнег терпят неудачу. Может кто подскажет?
з.ы. Приложение во всех случаях ( например if (db.Open("","<имя_базы>","<имя_пользователя>","<пароль>")) ) выдаёт следующую ошибку: "An unhandled exception occured..." ну варианты: Прервать, Повтор и Пропустить.
Зачем гадать на кофейной гуще? Посмотрите справочное руководство по функции db.Open. В нём должен быть описан список параметров. А так вам ответили правильно: хост, база, пользователь, пароль. Опционально бывает ещё порт.
Извиняюсь, что долго отвечаю.
Да, работаю в Windows, ограничений нет. Добился того, что по ip-адресу база подключается. Для этого нужно было внести в код приложения некоторые изменения для функции, которая отвечает за подключение, а точнее сделать её виртуальной.))
Теперь не получается подключиться по сети. Насколько я понимаю, то в файле pg_hba.conf содержатся сведения об адресах, с которых можно подключаться к базе. Но почему-то не работает, если указать адрес машины, на котором стоит приложение... Подскажите пожалуйста, можеть быть подобные сведения содержатся ещё где-то или может необходимы библиотеки для приложения, чтобы подключаться к базе по сети?
ip-адрес сервера 10.100.0.202, маска 255.255.0.0, ip, для которого нужно разрешить доступ к базе: 10.100.1.68
И ещё... в файле postgresql.conf значение listen_addresses установил "*".
Он традиционен
Он традиционен для любой СУБД:
Хост, порт, имя пользователя, пароль, база данных
Если порт не задан, используется умолчание.
-----------------------------------------------------------------------------------
"ls /" (C) Козьма Прутков
Здравствуйте! Д
Здравствуйте!
Давайте рассмотрим на примере, написанном на C. Вот отрывок кода:
...
if (db.Open("<имя_базы>","<имя_пользователя>","<пароль>"))
{
wxMessageBox ("Соединение с БД установлено успешно","Сообщение");
isdb = true;
...
В такой форме код правильный, ошибок нет, приложение к базе подключается. Но задача состоит в том, чтобы приложение стояло на рабочей станции, а БД находилась на сервере. Как это реализовать? Все мои попытки писать имя сервера или его айпишнег терпят неудачу. Может кто подскажет?
з.ы. Приложение во всех случаях ( например if (db.Open("","<имя_базы>","<имя_пользователя>","<пароль>")) ) выдаёт следующую ошибку: "An unhandled exception occured..." ну варианты: Прервать, Повтор и Пропустить.
Зачем гадать на
Зачем гадать на кофейной гуще? Посмотрите справочное руководство по функции db.Open. В нём должен быть описан список параметров. А так вам ответили правильно: хост, база, пользователь, пароль. Опционально бывает ещё порт.
Ну вот в
Ну вот в руководстве написано:
virtual bool Open();
virtual bool Open(const wxString& strDatabase);
virtual bool Open(const wxString& strServer, const wxString& strDatabase);
virtual bool Open(const wxString& strDatabase, const wxString& strUser, const wxString& strPassword);
virtual bool Open(const wxString& strServer, const wxString& strDatabase, const wxString& strUser, const wxString& strPassword);
Вот и пытаюсь выяснить почему работает только virtual bool Open(const wxString& strDatabase, const wxString& strUser, const wxString& strPassword);
Это всё в Windows
Это всё в Windows происходит?
Случайно нет каких-либо ограничений, накладываемых политиками безопасности?
Извиняюсь, что
Извиняюсь, что долго отвечаю.
Да, работаю в Windows, ограничений нет. Добился того, что по ip-адресу база подключается. Для этого нужно было внести в код приложения некоторые изменения для функции, которая отвечает за подключение, а точнее сделать её виртуальной.))
Теперь не получается подключиться по сети. Насколько я понимаю, то в файле pg_hba.conf содержатся сведения об адресах, с которых можно подключаться к базе. Но почему-то не работает, если указать адрес машины, на котором стоит приложение... Подскажите пожалуйста, можеть быть подобные сведения содержатся ещё где-то или может необходимы библиотеки для приложения, чтобы подключаться к базе по сети?
ip-адрес сервера 10.100.0.202, маска 255.255.0.0, ip, для которого нужно разрешить доступ к базе: 10.100.1.68
И ещё... в файле postgresql.conf значение listen_addresses установил "*".