/ Forside / Teknologi / Udvikling / C/C++ / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
C/C++
#NavnPoint
BertelBra.. 2425
pmbruun 695
Master_of.. 501
jdjespers.. 500
kyllekylle 500
Bech_bb 500
scootergr.. 300
gibson 300
molokyle 287
10  strarup 270
Forbindelse til mySQL-database i QT
Fra : Henrik


Dato : 21-05-05 18:15

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

 
 
Søg
Reklame
Statistik
Spørgsmål : 177438
Tips : 31962
Nyheder : 719565
Indlæg : 6408046
Brugere : 218879

Månedens bedste
Årets bedste
Sidste års bedste