|
|
|
| Нужно написать интерфейс к базе данных. Очень хочется использовать Qt.
Как их, собственно, заставить работать вместе?
Добавил в переменную окружения PATH пути: C:\PostgreSQL\bin;C:\PostgreSQL\include;C:\PostgreSQL\lib
а что делать дальше?) | |
|
|
|
|
|
|
|
для: B-Rhyme
(25.03.2012 в 14:50)
| | Собственно Qt тут не причем, вам лучше для начала просто установить связь с PostgreeSQL из C-программы. Сейчас постараюсь подготовить примерчик с описанием построения проекта. | |
|
|
|
|
|
|
|
для: B-Rhyme
(25.03.2012 в 14:50)
| | Если у вас проект настроен нормально, то следующая программа должна вывести строку с версией PostgreeSQL-сервера (разумеется нужно подставить свои логин и пароль в строку conninfo).
#include <iostream>
#include <libpq-fe.h>
#pragma comment(lib, "libpq.lib")
using namespace std;
int main(int argc, char **argv)
{
// Дескриптор соединения с базой данных
PGconn *conn;
// Дескриптор результирующей таблицы
PGresult *res;
// Параметры соединения
const char * conninfo = "dbname = postgres user=postgres password=pass";
// Устанавливаем соединение (ВНИМАНИЕ имя вашей базы данных)
conn = PQconnectdb(conninfo);
// Убеждаемся в том, что соединение установлено
if (PQstatus(conn) != CONNECTION_OK)
{
cout << "Connection to database failed: " << PQerrorMessage(conn) << endl;
system("pause");
return 1;
}
// Выполняем запрос
res = PQexec(conn, "SELECT VERSION();");
if (PQresultStatus(res) != PGRES_TUPLES_OK)
{
cout << "SQL-query failed: " << PQerrorMessage(conn) << endl;
PQclear(res);
system("pause");
return 1;
}
// Выводим результат
cout << PQgetvalue(res, 0, 0) << endl;
// Освобождаем память, выделенную под результирующую таблицу
PQclear(res);
// Закрываем соединение с базой данных
PQfinish(conn);
// Пауза перед закрытием
system("pause");
return 0;
} |
| |
|
|
|
|
|
|
|
для: cheops
(25.03.2012 в 19:08)
| | Извините за, откровенно, тупой вопрос - а куда код скопипастить? =))
В Visual Studio?
Вы говорите, что не нужно использовать Qt. А почему? Я читал в книге по Qt что имеется связь со специальным драйвером PSQL. Только вот никак не могу заставить их собраться. | |
|
|
|
|
|
|
|
для: B-Rhyme
(27.03.2012 в 21:23)
| | >Извините за, откровенно, тупой вопрос - а куда код скопипастить? =))
>В Visual Studio?
Ну я да, отлаживал в Visual Studio (консольный проект)
>Вы говорите, что не нужно использовать Qt. А почему? Я читал в книге по Qt что имеется связь со
>специальным драйвером PSQL. Только вот никак не могу заставить их собраться.
Сначала заставьте этот пример работать - может у вас проблемы с сервером или с клиентской библиотекой. Можно и с оболочкой Qt "разобраться", только имя её называйте, я в Qt набегами бываю, а уж PostgreeSQL вообще её ни разу не соединял, я бы работал напрямую с сервером, возможно в Qt есть более удобные средства. | |
|
|
|
|
|
|
|
для: cheops
(27.03.2012 в 22:11)
| | Я пробовал в Студии. Скопировал код, скопировал libpq-fe.h в каталог с программой, проект не консольный создал, а типа Win32 -> Пустой.
Выдаёт просот сотню ошибок. =((
Понял. Буду стараться сделать сначала это. | |
|
|
|
|
|
|
|
для: B-Rhyme
(27.03.2012 в 22:19)
| | >Добавил в переменную окружения PATH пути: C:\PostgreSQL\bin;C:\PostgreSQL\include;C:
>\PostgreSQL\lib
Меня несколько смутила эта строка, я подумал, может у вас и проект уже настроен. А вообще нужно еще и в самом проекте произвести настройки
1) Проект->Свойства проекта->C/C++->Общие->Дополнительные каталоги включаемых файлов C:\PostgreSQL\include
2) Проект->Свойства проекта->Компоновщик->Общие->Дополнительные каталоги библиотек C:\PostgreSQL\lib
PS В любом случае тащите сюда ошибки, без них сложно посоветовать куда лучше копать, так как от сюда не видно, что происходит. | |
|
|
|
|
|
|
|
для: cheops
(27.03.2012 в 23:36)
| | Добавил в свойства проекта пути к либам.
Но, результат по-прежнему тот же =((
1>------ Построение начато: проект: Test_PS, Конфигурация: Debug Win32 ------
1>Построение начато 03.04.2012 22:32:38.
1>PrepareForBuild:
1> Создание каталога "c:\users\b-rhyme\documents\visual studio 2010\Projects\Test_PS\Debug\".
1>InitializeBuildStatus:
1> Создание "Debug\Test_PS.unsuccessfulbuild", так как было задано "AlwaysCreate".
1>ClCompile:
1> Test_PS.cpp
1>LINK : fatal error LNK1104: не удается открыть файл "libpq.lib"
1>
1>СБОЙ построения.
1> | |
|
|
|
|
|
|
|
для: cheops
(27.03.2012 в 23:36)
| | У меня получилось такое:
PostgreSQL 9.1.2, compiled by Visual C++ build 1500, 32-bit
Для продолжения нажмите любую клавишу . . .
Это то, что нужно???? = ))
Пожалуйста, отзовитесь. Очень нужна ваша помощь. | |
|
|
|
|
|
|
|
для: B-Rhyme
(14.04.2012 в 12:57)
| | Да, это именно то, что нужно, вы обратились к PostreSQL, запросили версию сервера, и вывели её в консоль. Если бы сервер не работал бы или связь с сервером не осуществлялась бы, то получить этой строки вам бы не удалось. Теперь можно переходить к более сложным примерам. | |
|
|
|
|
|
|
|
для: cheops
(14.04.2012 в 17:19)
| | А как именно сделать графический интерфейс для моей БД ?
Вы могли бы помочь с написанием такого интерфейса? От этого, действительно, многое в жизни прямо зависит= )) | |
|
|
|
|
|
|
|
для: B-Rhyme
(14.04.2012 в 21:04)
| | А сколько времени есть на задачу, просто я прямо сейчас сильно в дороге, ни интернета нормального нет, ни Qt с собой (только C++ Visual Studio Express). | |
|
|
|
|
|
|
|
для: cheops
(17.04.2012 в 21:58)
| | Совсем мало. 24 апреля, вроде как, последний срок. | |
|
|
|
|
автор: Patriot_dar (21.04.2012 в 16:50) |
|
|
для: B-Rhyme
(18.04.2012 в 00:51)
| | Здравствуйте, наткнулся на вашу тему, занимаюсь аналогичной проблемой, делал все по вашему примеру, только вот выходят немного другие ошибки:
------ Построение начато: проект: Fifth QT, Конфигурация: Debug Win32 ------
1>Построение начато 21.04.2012 15:48:06.
1>InitializeBuildStatus:
1> Обращение к "Debug\Fifth QT.unsuccessfulbuild".
1>PreBuildEvent:
1> main.cpp(0): Note: No relevant classes found. No output generated.
1>ClCompile:
1> Для всех выходных данных обновления не требуется.
1>ManifestResourceCompile:
1> Для всех выходных данных обновления не требуется.
1>main.obj : error LNK2019: ссылка на неразрешенный внешний символ _PQfinish в функции _main
1>main.obj : error LNK2019: ссылка на неразрешенный внешний символ _PQgetvalue в функции _main
1>main.obj : error LNK2019: ссылка на неразрешенный внешний символ _PQclear в функции _main
1>main.obj : error LNK2019: ссылка на неразрешенный внешний символ _PQresultStatus в функции _main
1>main.obj : error LNK2019: ссылка на неразрешенный внешний символ _PQexec в функции _main
1>main.obj : error LNK2019: ссылка на неразрешенный внешний символ _PQerrorMessage в функции _main
1>main.obj : error LNK2019: ссылка на неразрешенный внешний символ _PQstatus в функции _main
1>main.obj : error LNK2019: ссылка на неразрешенный внешний символ _PQconnectdb в функции _main
1>C:\Users\ЯрославчеГ\documents\visual studio 2010\Projects\Fifth QT\Debug\Fifth QT.exe : fatal error LNK1120: 8 неразрешенных внешних элементов
1>
1>СБОЙ построения. | |
|
|
|
|
|
|
|
для: Patriot_dar
(21.04.2012 в 16:50)
| | У вас линковщик не видит библиотеки libpq.lib - путь к ней вероятно не прописан в переменной окружения PATH. В этом случае нужно убрать строку
#pragma comment(lib, "libpq.lib") | и указать путь к библиотеке в свойствах проекта. | |
|
|
|