Hej
Jeg er total novice indenfor Trolltech's QT, og kan ikke få fat i min
mySQL-database.
Jeg har oprettet en mySQL-database, og kan fint få fat i den i konsollen,
hvor jeg kan udføre sql-forespørgsler. Databasen hedder "patent" og alt
hvad der er adgangskode og brugernavn har jeg fjernet.
I QDesigner laver jeg så en forbindelse. Det går OGSÅ fint.
Men når jeg vil lave mysql-forespørgsler til selve min applikation, går det
galt. Jeg har læst noget om at jeg skal lave forbindelse een gang til ved
de to filer connection.cpp og connection.h (hvilket jeg ikke forstår - når
forbindelsen nu ER der).
Når jeg kører programmet, får jeg nedenstående fejlmelding:
henrik@linux
/Test> ./DBtest
QSqlDatabaseManager: A QApplication object has to be instantiated in order
to use the SQL module.
SÃ¥dan ser mine filer ud:
MAIN.CPP
...........................
#include <qapplication.h>
#include "form1.h"
#include <qsqldatabase.h>
#include "connection.h"
int main( int argc, char ** argv )
{
QApplication a( argc, argv );
if ( ! createConnections() )
return 1;
Form1 w;
w.show();
a.connect( &a, SIGNAL( lastWindowClosed() ), &a, SLOT( quit() ) );
return a.exec();
}
CONNECTION.H
....................
// Add your own connection parameters here
#define DB_PATENT_DRIVER "QMYSQL3"
#define DB_PATENT "patent"
CONNECTION.CPP
..................
bool createConnections();
#include <qsqldatabase.h>
#include "connection.h"
bool createConnections()
{
// create the default database connection
QSqlDatabase *defaultDB = QSqlDatabase::addDatabase( DB_PATENT_DRIVER );
defaultDB->setDatabaseName( DB_PATENT );
if ( ! defaultDB->open() ) {
qWarning( "Failed to open patent database: " +
defaultDB->lastError().driverText() );
qWarning( defaultDB->lastError().databaseText() );
return FALSE;
}
return TRUE;
}
Og i denne form skulle jeg kunne indsætte en post i min database:
FORM1.UI.H
-----------
#include <qsqldatabase.h>
QSqlQuery q;
void Form1::init()
{
// indsaetITabel() = 0;
}
void Form1::indsaetITabel()
{
q.exec("INSERT INTO Ansoeger values ('Hansen', Bogfinkevej 9', 2300)");
}
HVAD GØR JEG GALT?
KAN NOGEN HJÆLPE MIG