Seite 1 von 1

Qt + Visual Studio 2013: C++ postgresql verbindung

Verfasst: 7. Juli 2014 11:58
von CodeMeIn
Hallo zusammen,

als blutiger Anfänger versuche ich seit Tagen eine Verbindung zu meiner lokalen PostgreSQL 9.0 (32bit) Datenbank herzustellen. Ich fange am besten mit meinem Setup an:

Folgende Installation unter Windows 8.1 (64bit) mit Visual Studio 2013...

a) Qt 5.3.1 for Windows 32-bit (VS 2013, 559 MB)
b) Visual Studio Add-in 1.2.3 for Qt5

Visual Studio 2013 läuft mit Qt und ich habe ein erstes Qt GUI mit einem Button (objectName->pushButton) und einem Label (objectName->label) gebaut.

In MyApp.h steht nun folgendes:

Code: Alles auswählen

#ifndef MyApp_H
#define MyApp_H

#include <QtWidgets/QMainWindow>
#include "ui_MyApp.h"
#include <QSqlDatabase> 
#include <QtSql>

class MyApp : public QMainWindow
{
	Q_OBJECT

public:
	MyApp(QWidget *parent = 0);
	~MyApp();

private:
	Ui::MyAppClass ui;

	// begin new code
	public slots:
	void on_pushButton_clicked() {
	
		QSqlDatabase db = QSqlDatabase::addDatabase("QPSQL");
		db.setHostName("localhost");
		db.setDatabaseName("4DB");
		db.setUserName("postgres");
		db.setPassword("dbpass");

		if (!db.open())
			ui.label->setText("Connection Failed!");
		else
			ui.label->setText("Connected");
	}
	// end new code

};

#endif // MyApp_H
Der Visual Studio Fehler im Debug Mode lautet:

Code: Alles auswählen

'MyApp.exe' (Win32): Loaded 'C:\Qt\Qt5.3.1\5.3\msvc2013\plugins\sqldrivers\qsqlpsqld.dll'. Symbols loaded.
'MyApp.exe' (Win32): Unloaded 'C:\Qt\Qt5.3.1\5.3\msvc2013\plugins\sqldrivers\qsqlpsqld.dll'
QSqlDatabase: QPSQL driver not loaded
QSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL3 QODBC QODBC3 QPSQL QPSQL7
GUI läuft, Verbindung klappt nicht. Nun habe ich viel recherchiert und einiges versucht. U.a. habe ich in den Visual Studio 2013 Projekteinstellungen folgendes eingetragen...

a) Properties->C/C++->General->Additional Include Directories: "C:\Program Files\PostgreSQL\9.0\include";
b) Properties->Linker->General-> Additional Libary Directories: "C:\Program Files\PostgreSQL\9.0\lib";
c) Properties->Linker->Input->Additional Dependencies: libpq.lib

Auch habe ich einmal die .dll der PostgreSQL Installation in andere Verzeichnisse kopiert...
Von...
C:\Program Files\PostgreSQL\9.0\bin
nach..
Visual-Studio-Projekt\Win32\Debug
und nach...
Visual-Studio-Projekt\Win32\Release

libeay32.dll
libiconv-2.dll
libintl-8.dll
libpq.dll
libxml2.dll
libxslt.dll
ssleay32.dll
zlib1.dll
Egal was ich mache, die Verbindung klappt nicht und ich finde keine Quelle im Netz. So schwer kann das doch nicht sein, eine Verbindung mit der Datenbank zu erhalten. Ich hoffe mir kann jemand helfen.

Für alle die ebenfalls auf der Suche sind befindet sich hier noch ein interessanter Link, der mir bislang aber auch nicht weitergeholfen hat: http://qt-project.org/doc/qt-4.8/qsqldatabase.html

Gruss CodeMeIn

Re: Qt + Visual Studio 2013: C++ postgresql verbindung

Verfasst: 10. Juli 2014 10:15
von Christian81
Im Plugin-Ordner parallel zur libpsql4.dll müssen noch die Postgres-Libs liegen (libpq.dll, libintl.dll usw. -> Dependency Walker).