Anmelden

Archiv verlassen und diese Seite im Standarddesign anzeigen : qt 3.3.4 und PostgreSQL



Enigma25
24-05-2006, 18:26
Hallo ich habe ein Problem..

ich habe PostgreSql 8.0.7 auf suse 10 installiert, nach Anweisung von:
http://www.postgres.de/install.html

manuelle eingaben funktionieren( Select , insert usw.)

DB: test
Inhalt: tblFriend
vorname | name | ort | plz
---------+------+-----------+-------
Tobias | Manne | Mannheim | 51248


und ein Qt Prog zum testen :

#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#include <qapplication.h>
#include <qsqldatabase.h>
#include <qstring.h>
#include <qsqlquery.h>
int main(int argc, char *argv[])
{
QApplication app(argc,argv);

QSqlDatabase* myDB1=QSqlDatabase::addDatabase("QPSQL7","db");
myDB1->setDatabaseName("test");
myDB1->setUserName("postgres");
myDB1->setHostName("127.0.0.1");
myDB1->setPassword("passwort");
myDB1->setPort(3306);
QSqlDatabase* myDB=QSqlDatabase::database("db");
if (myDB->open()){
QString text="select * from tblFriend";
QSqlQuery query(text,myDB);
if(query.isActive()){
while ( query.next() ) {
QString antwort= query.value(0).toString();
qWarning(antwort);
}
}
}
myDB->close();
//app.setMainWidget(new MyClass());

return app.exec();
}



Ausgabe:

QSqlDatabaseManager::database: unable to open database: expected authentication request from server, but received =
: QPSQL: Unable to connect

wo könnte der Fehler liegen?


Vielen Dank
Thomas

Enigma25
24-05-2006, 20:10
Lösung:

#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#include <qapplication.h>
#include <qsqldatabase.h>
#include <qstring.h>
#include <qsqlquery.h>
#define DB_SALES_DRIVER "QPSQL7"
#define DB_SALES_DBNAME "test"
#define DB_SALES_USER "postgres"
#define DB_SALES_PASSWD "password"
#define DB_SALES_HOST "127.0.0.1"
int main(int argc, char *argv[])
{
QApplication app(argc,argv);

QSqlDatabase *defaultDB = QSqlDatabase::addDatabase( DB_SALES_DRIVER );
defaultDB->setDatabaseName( DB_SALES_DBNAME );
defaultDB->setUserName( DB_SALES_USER );
defaultDB->setPassword( DB_SALES_PASSWD );
defaultDB->setHostName( DB_SALES_HOST );

if ( defaultDB->open() ) {
QSqlQuery query( "SELECT * FROM tblFriend;", defaultDB );
if ( query.isActive() ) {
while ( query.next() ) {
qWarning(query.value(0).toString());
}
}
}

return 0;
}

hab die Hilfe nochmal durchforstet und siehe da...
Blinder Hahn findet auch nen Korn *prost*

trotzdem danke
thomas