Anmelden

Archiv verlassen und diese Seite im Standarddesign anzeigen : c++ : mysql query in array oder variable schreiben



Knuffel
15-10-2004, 14:20
Hallöchen.
Ich versuche schon seit monaten, irgendwie eine graphische Oberfläche (mit qt3 designer) zu erstellen, die auf eine mysql-datenbank zugreift.
Habe es mittlerweile geschafft, auch dank dieses Forums, die mysql.h Bibliothek einzubinden (unter kdevelop).
Allerdings habe ich bisher nicht herausfinden können, wie ich eine Standardabfrage in eine Variable(array) schreiben kann.
Versteh auch die Syntax der sql-api- befehle net so ganz.
Wäre nett, wenn mir jemand helfen könnte.

Christian_2
16-10-2004, 13:20
Hi Knuffel,

wie gefaellt dir das: http://www.qtforum.org/members/christian/flib/doc/classflib_1_1FMysql.html

Abfragen kannst du damit so "verarbeiten":


Flib::FMysql sql("localhost", "root", "password", "datenbank", "tabelle");
sql.select("a=5");
while(sql.next()) {
cout << sql.value("spalte 1");
}

Aber wenn du eh Qt verwenden willst - nimm doch Qt's SQL Modul.

Knuffel
16-10-2004, 17:33
Danke, das gefällt mir erstmal sehr gut.
Werde das mal testen.
Komme mit QT3 Designer net zurecht, finde die Klassen net.
Würde gerne einfach die Namen aus einer Datenbank in ein Auswahl-widget schreiben, aber finde dazu die klassen net.
So nach dem Motto settext-> .
Habe mich mit dem ganzen Kram ein bißchen übernommen, versuche daher erst einmal, überhaupt Objekte zu erzeugen, die ihre Attribute aus einer Datenbank beziehen, bzw. wieder zurück speichern.
Da der ganze Krempel hinterher unter Windoof laufen soll, versuche ich das erst einmal so.
Kann die Klassen hoffentlich dann hinterher in VC++ oder so einbinden.
Erst einmal danke, ich meld mich garantiert wieder... :p

Knuffel
16-10-2004, 17:44
Flib::FMysql sql("localhost", "root", "password", "datenbank", "tabelle");
sql.select("a=5");
while(sql.next()) {
cout << sql.value("spalte 1");
}

Moment mal.....
Fmysql ist doch gar nicht implementiert...
Wenn ich den Header einbinde, und den Code in main.cpp kopiere, dann mault flib sei nicht deklariert.
Wat mache ich mal wieder falsch... :confused:

Christian_2
17-10-2004, 08:00
Lade dir das runter: http://www.qtforum.org/members/christian/flib/snapshots/flib-snapshot-0008.tar.gz

Entpacke es - kopiere die Dateien fmysql.h und fmysql.cpp in dein verzeichnis und #include die fmysql.h datei.



#include "fmysql.h"
Flib::FMysql sql("localhost", "root", "password", "datenbank", "tabelle");
sql.select("a=5");
while(sql.next()) {
cout << sql.value("spalte 1");
}

Knuffel
18-10-2004, 08:22
Jou, das hat mir sehr geholfen, danke!
Gibt es auch eine schreibende Methode, die in die Datenbank schreibt?

Christian_2
18-10-2004, 09:35
Nein das musst du so machen:

sql.mysqlQuery("INSERT INTO tabelle (bla, blupp) VALUES('lala', 'po');

Knuffel
19-10-2004, 07:38
Erstmal vielen Dank an christian_2, das hat mir wochenlanges Probieren erspart.
Aber eine (zwei) Fragen habe ich noch.
Die Methode mysqlQuery erwartet einen string als Argument.
Wie schaut es aber aus, wenn ich eine Variable übergeben will,
da neue Objekte einer Klasse direkt in die Datenbank geschrieben werden sollen?
Das gleiche gilt natürlich für update oder delete-queries.

THX, Knuffel


:)