MySQLDatabase

Alles rund um die Programmierung mit Qt
Antworten
reuabreliz
Beiträge: 86
Registriert: 4. Oktober 2008 17:06

MySQLDatabase

Beitrag von reuabreliz »

Also ich habe eine Klasse myDatabase.h diese soll sich lediglich mit der Datenbank verbinden. (z.b.: setHostname(), setDatabaseName(), addDatabase, usw.) und soll dann einen Zeiger auf diese Verbindung zurückgeben.

Das ist mein Code der aber leider nicht funktioniert:

Code: Alles auswählen

  1 #include "myDatabase.h"                                                                            
  2 #include <QDebug>                                                                                  
  3                                                                                                    
  4 MyDatabase::MyDatabase() : QSqlDatabase()                                                          
  5 {                                                                                                  
  6                                                                                                    
  7 }                                                                                                  
  8                                                                                                    
  9 QSqlDatabase *MyDatabase::connect()                                                                
 10 {                                                                                                  
 11     this->addDatabase("QMYSQL");                                                                   
 12                                                                                                    
 13     this->setHostName("localhost");                                                                
 14     this->setDatabaseName("reifepruefung");                                                        
 15     this->setUserName("root");                                                                     
 16     this->setPassword("mysql");                                                                    
 17     if(this->open());                                                                              
 18         qDebug() << "geschafft";                                                                   
 19     return this;                                                                                   
 20 }    
Aber wenn ich nun die Funktion connect aufrufe gibt sie mir keine zulässige Verbindung zurück.
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Abgesehen davon dass ein Ableiten von QSqlDatabase nicht unbedingt sinnig ist (siehe Doku und das dortige Beispiel) ist 'gibt sie mir keine zulässige Verbindung zurück' auch keine Fehlermeldung die uns weiterhilft. Gibt open() false zurück oder was genau geht nicht?
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
reuabreliz
Beiträge: 86
Registriert: 4. Oktober 2008 17:06

Beitrag von reuabreliz »

Ja wie soll ich es sonst machen? Ich will nicht jedes mal den ganzen COde hinschreiben für die Datenbank verbindung.

Beim Debuggen sagt er mir:

QSqlDatabasePrivate::removeDatabase: connection 'qt_sql_default_connection' is still in use, all queries will cease to work.
QSqlDatabasePrivate::addDatabase: duplicate connection name 'qt_sql_default_connection', old connection removed.
geschafft
QSqlQuery::exec: database not open
Segmentation fault
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Einfach so wie es in Der Doku (ja die ist zum lesen da!) steht.
Einmal die DB-Verbindung öffnen und dann immer per QSqlDataBase::database() drauf zugreifen und fertig.
Da open() funktioniert -wo ist das Problem? Die Fehler sagen nur aus dass Du vorher wohl schon einmal ein QSqlDatabase::addDatabase() ausgeführt hast.
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
reuabreliz
Beiträge: 86
Registriert: 4. Oktober 2008 17:06

Beitrag von reuabreliz »

Könntest du mir den Link zu dieser Doku schicken
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

reuabreliz
Beiträge: 86
Registriert: 4. Oktober 2008 17:06

Beitrag von reuabreliz »

Also den Link kenn ich mitlerweile auch schon danke. Wär wirklich nett wenn du mir den Link zu dem was ich brauche gibst, weil ich habe nicht Lust mir da jetzt alles durchzulesen und dann das richtige herauszufiltern
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
Antworten