2015-04-06 3 views
0

Я установил базу данных Postgres, и я пытаюсь подключиться к ней из кода C++ (VC++). Вместо передачи жестко закодированных значений в функцию Connect (edit: PQconnectdb?), я хотел бы написать файл конфигурации и прочитать значения и отправить их функции connect.Загрузка строки из файла конфигурации в MFC

Как это сделать в vC++? Пожалуйста, помогите мне.

CString Connect= _T("host=x.x.x.x port=5432 dbname=xxxxxx user=cdfvv password=hccjjj"); 

Вместо назначения значения, подобного этому, я хотел бы написать конфигурацию и обработать ее.

+0

Что «' функция Connect'»? Вы используете libpq? C# и nPgSQL? ODBC? ADO/ADO.NET? Entity Framework? Подробности пожалуйста. Кроме того, файл конфигурации приложения, похоже, не имеет особого отношения к PostgreSQL. Наконец, почему PostgreSQL 9.1 для нового кода? –

+0

yes Я использую функцию PQConnect для подключения к базе данных, которая будет иметь входную строку Connect как PQConnect (Connect), где connect - _T («host = x.x.x.x port = 5432 dbname = xxxxxx user = cdfvv password = hccjjj»); – sasikala

+0

Насколько я могу судить, 'CString' - это класс MFC C++, который может быть неявно преобразован в' const char * '. Предполагая, что вы используете C++ и libpq, я думаю, вы должны иметь в виду, что вы вызываете [libpq 'функцию PQconnectdb] (http://www.postgresql.org/docs/current/static/libpq-connect.html). Поэтому вам нужно загрузить строку из любого конфигурационного файла, который вы используете, и передать его в 'PQconnectdb'. Это не похоже на PostgreSQL. это, по-видимому, базовое программирование Windows API/MFC. –

ответ

2

(Я редактировал свой вопрос с моим лучшим предположением относительно того, что вы на самом деле пытаетесь спросить.)

MFC обеспечивает CWinApp::GetProfileString и CWinApp::SetProfileString методы, которые абстрактной конфигурации для использования в INI-файл или реестр , Если вы используете MFC, и он выглядит так, как вы, вы должны использовать эти методы.

В противном случае в Windows рассмотрите возможность использования the win32 Registry APIs, что является обычным способом хранения конфигурации приложения в Windows.

Или используйте файл конфигурации XML, если хотите; см. the manual for MSXML.

В качестве альтернативы существует множество сторонних библиотек для разбора и хранения файлов конфигурации в различных форматах, включая .ini-стиль.


Лично я рекомендую вам не использовать MFC, который я предполагаю, что вы используете на основе вашего использования CString класса (?). ИМО МФК устарел. Используйте простой C++, если вы пишете консольное приложение. Если вы пишете графическое приложение, подумайте о том, как использовать Qt или упростите свою жизнь, используя C# и WinForms.


(Кстати: я никогда не написал приложение MFC, как я работаю только на кросс-платформенных приложений я просто сделал несколько поисков Google.).