Zum Inhalt springen

QT 3 MySQL Daten Ausgeben


Angus131

Empfohlene Beiträge

hallo.. ich hab mal wieder ein problem mit meinem Programm =)... ich habe mir jetzt eine Datenbank angelegt indem ich mehrere Jahreszahlen hinterlegt habe (2008, 2009, usw) ... diese wollte ich jetzt in einer ComboBox anzeigen lassen aber irgendwie bekomme ich das nicht hin.. (später ordne ich zu den Jahreszahlen noch jeweils die Monate hinzu).

hier mal der code wie ich die daten von meiner datenbank abfrage:


	int abruf;

	MYSQL *connectionDB;

	MYSQL addDB;

	mysql_init(&addDB);

	connectionDB=mysql_real_connect(&addDB, "*****", "*****", "*****", "****", 0,0,0);

	string query= "select Jahr from Jahresverwaltung";

	abruf = mysql_query(connectionDB, query.c_str());



	close();

und hier nochmal meine ComboBox:

	jahr = new QComboBox(this);

	jahr->setGeometry(300,120,100,20);

	monat = new QComboBox(this);

	monat->setGeometry(420,120,100,20);

        static const char* items[] = { "Jahre", 0 };

        jahr->insertStrList( items );

hab da jetzt nur das Wort Jahre hingeschrieben =) ... später kommt halt der string da rein welcher dann alle anzeigt =)

hab auch schon drüber nachgedacht den string in ein array zu packen... kann mir aber net vorstellen das das klappen sollte =)

kann mir da jemand weiterhelfen?

:hells:

Link zu diesem Kommentar
Auf anderen Seiten teilen

also ich hab jetzt nochmal geschaut wie ich eine anfrage abschicke... aber irgendwie geht das noch net so O.o

hier nochmal der code:

.h datei


#include <qpushbutton.h>

#include <qcombobox.h>

#include <qwidget.h>

#include <mysql/mysql.h>


class Window: public QWidget{

Q_OBJECT

private:

    QPushButton *anzeige;

    QComboBox *jahr;

    QComboBox *monat;


public:

    Window();

    ~Window();

    int numRow;

    MYSQL_RES* res;

    MYSQL_ROW rowContent;

    void jahrresverwaltungabruf();

};


.cpp datei

#include "window.h"

#include <iostream>

#include <qstring.h>


using namespace std;


Window::Window(){


//---------------Titel des Fensters-------------------------------

	this->setGeometry(0,0,1024,768);

	this->setCaption("Titel");

//-------------------------Combo Box-----------------------------

	jahr = new QComboBox(this);

	jahr->setGeometry(300,120,100,20);

        static const char* items[] = { "Jahre" , 0 };

        jahr->insertStrList( items );

//-------------------------Buttons-------------------------------

	anzeige = new QPushButton("Anzeigen", this);

	anzeige->setGeometry(540,120,100,20);


//-------------------------Connection Befehle--------------------

	connect(anzeige, SIGNAL(clicked()),this, SLOT(jahrresverwaltungabruf()));

	this->show();

}


//-------------------------Konstruktor und Destruktor------------

Window::~Window(){}


void Window::jahrresverwaltungabruf(){


	MYSQL *connectionDB;

	MYSQL addDB;

	mysql_init(&addDB);

	connectionDB=mysql_real_connect(&addDB, "localhost", "Benutzer", "Passwort", "verwaltung", 0,0,0);

    mysql_query(connectionDB, "Select Jahr from Jahresverwaltung;");

    res = mysql_store_result(connectionDB);


    rowContent = mysql_fetch_row(res);


    cout << rowContent << endl;



}

hab das zum test noch nicht eingebunden sondern erstmal wollte ich probieren ob er irgendwas in der konsole ausgibt... aber es kommt garnichts O.o

Link zu diesem Kommentar
Auf anderen Seiten teilen

juhuuuu hab es nun hinbekommen das er wenigstens eine zahl ausgibt ;p

nur jetzt zerbreche ich daran den wert einzufügen O.o .. hab das jetzt so versucht:

.h datei



#include <qpushbutton.h>

#include <qcombobox.h>

#include <qwidget.h>

#include <mysql/mysql.h>


class Window: public QWidget{

Q_OBJECT

private:

    QPushButton *anzeige;

    QComboBox *jahr;

    QComboBox *monat;


public:

    Window();

    ~Window();


public slots:

    int jahrresverwaltungabruf();

};

.cpp datei

#include "window.h"

#include <iostream>

#include <qstring.h>


using namespace std;


Window::Window(){


//---------------Titel des Fensters-------------------------------

	this->setGeometry(0,0,1024,768);

	this->setCaption("Titel");

//-------------------------Combo Box-----------------------------

	jahr = new QComboBox(this);

	jahr->setGeometry(300,120,100,20);

        static const char* items[] = { "Jahre" , 0 };

        jahr->insertStrList( items );

//-------------------------Buttons-------------------------------

	anzeige = new QPushButton("Anzeigen", this);

	anzeige->setGeometry(540,120,100,20);


//-------------------------Connection Befehle--------------------

	connect(anzeige, SIGNAL(clicked()),this, SLOT(jahrresverwaltungabruf()));

	this->show();

}


//-------------------------Konstruktor und Destruktor------------

Window::~Window(){}


void Window::jahrresverwaltungabruf(){


int jahrresverwaltungabruf(){


	MYSQL *connectionDB;

	MYSQL_RES *result;

	MYSQL_ROW recordset_row;

	const char *strSQL;

	MYSQL addDB;

	mysql_init(&addDB);

	connectionDB=mysql_real_connect(&addDB, "localhost", "Benutzer", "Passwort", "verwaltung", 0,0,0);

	strSQL="SELECT Jahr FROM Jahresverwaltung;";

	mysql_query(connectionDB,strSQL);

	result=mysql_store_result(connectionDB);

	recordset_row=mysql_fetch_row(result);


	return recordset_row[0];



}

hab das versucht die Funktion jahrresverwaltungabruf so zu initialisieren das sie einen wert zurückgeben kann ... sprich den wert recordset_row[0] ... aber wenn ich es versuche zu kompilieren dann sagt er mir es ist nicht definiert ... also muss ich irgendwas falsch gemacht haben um den wert zurückzugeben... hat jemand ne ahnung wie ich das richtig machen kann?

Link zu diesem Kommentar
Auf anderen Seiten teilen

das void Window::jahrresverwaltungabruf(){

hatte ich gelöscht

Du hast diese Methode aber in der Klassendefinition von Window definiert. Irgendein anderer Teil des Programms braucht sie vermutlich.

Ich glaube, ein C++-Grundlagentutorial wäre hier angebracht, bevor du dich in grafische Oberflächen und Datenbankzugriffe stürzt. ;)

Link zu diesem Kommentar
Auf anderen Seiten teilen

guter tipp ;p ... hab mir jetzt zwar kein tutorial durchgelesen aber hab es jetzt hinbekommen ;p ... jahrresverwaltungabruf() hab ich nun wieder als void initialisiert und einfach im programm aufgerufen >< ... da hätte ich ja auch von allein drauf kommen können ;p

danke für deine hilfe! =)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...