Avatar billede henrik_40 Juniormester
22. maj 2005 - 17:28 Der er 4 kommentarer og
1 løsning

Kan ikke få adgang til database

Hej
Jeg kæmper som en gal med at få adgang til min mySQL-database i QT. Godt nok er det i Linux jeg arbejder, men jeg tror mit problem ville være det samme i  Windows, så er du Windows-mand, vil du nok alligevel kunne hjælpe mig.

Jeg lavet en "rå" kode, main.cpp, som vist skulle få adgang. I QT-designer kan jeg oprette forbindelse ved kun at angive databasedriver og "patent", som navn. Men lige så snart jeg koder laver en sql-forespørgsel til databasen, går det galt.


Code:

#include
#include
#include

int main( int argc, char *argv[] )
{
QApplication app( argc, argv );

QSqlDatabase *db = QSqlDatabase::addDatabase( "QMYSQL3" );
db->setDatabaseName( "patent" );
db->setUserName( "localhost@henrik" );
db->setHostName( "localhost" );

if ( !db->open() )
{
qWarning( "Failed to open database: " + db->lastError().driverText() );
qWarning( db->lastError().databaseText() );
return 1;
}
return 0;
}



Jeg mistænker det er parametrene, som jeg bruger til at konnekte, der er noget galt med.
Håber nogen herinde kan hjælpe mig at indsætte de rigtige parametre.

/henrik

Fejlmeddelelse ved kørsel af program:
QSqlDatabase: QMYSQL3 driver not loaded
QSqlDatabase: available drivers: QMYSQL3 QPSQL7 QSQLITE QODBC3
Failed to open database: Driver not loaded
Driver not loaded
Avatar billede henrik_40 Juniormester
22. maj 2005 - 17:30 #1
Fik ikke include med......
Her er include:

#include <qapplication.h>
#include <qsqldatabase.h>
#include <qsqlcursor.h>
Avatar billede arne_v Ekspert
22. maj 2005 - 17:34 #2
http://lists.trolltech.com/qt-interest/2005-02/thread01186-0.html

antyder at det er placeringen af diverse DLL filer

(bruger ikke selv Qt)
Avatar billede henrik_40 Juniormester
22. maj 2005 - 17:49 #3
Jeg tror nu selv det er mine parametre.
Hvad skal sættes for at databasen kan kontaktes?

databasenavn: patent, er god nok.
usernavn, hvordan finder jeg det (i mySQL)?
hostnavn, hvordan finder jeg det (i mySQL)?

Kan man ikke finde oplysningerne i mySQL?
I mysql har jeg f.eks. skrevet:
mysql> select database(), user();
+------------+------------------+
| database() | user()          |
+------------+------------------+
| patent    | henrik@localhost |
+------------+------------------+
Avatar billede arne_v Ekspert
22. maj 2005 - 17:52 #4
db->setUserName( "localhost@henrik" );

skal nok være

db->setUserName( "henrik" );

men driver not loaded antyder altså at det ikke er brugenavn etc.
Avatar billede henrik_40 Juniormester
23. maj 2005 - 12:44 #5
Det var noget med kompileren at gøre. Forstår stadig ikke hvorfor "thread" skal sættes, som han skriver i sit svar til mig - men pyt det virker :-)

Du kan se svaret her, hvis det har interesse:
http://www.qtforum.org/thread.php?postid=46963#post46963


/henrik
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester