ETwas speichern mit SQL

Dein Thema passt einfach in kein Forum? Dann probiers mal hier.
borbih
Beiträge: 9
Registriert: 3. März 2009 17:27

ETwas speichern mit SQL

Beitrag von borbih »

Hallo ich habe ein Programm in Eclipse mit Qt programmiert. Jetzt wollte ich das man die Daten speichert die man eingibt und das wollte ich mit SQL machen. Damit ich die später wieder Laden kann aber ich habe gar keine Ahnung wie man das macht.
Braucht man da eine SQL Datenbank? und muss ich die ganzen Variablen in SQL speichern? gibt es ein Beispiel wo man das sieht wie jmd. das gemacht hat?
Danke.
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Wie wäre es, wenn du dich erst mal ein bischen mit SQL beschäftigst bevor du versucht 'einfach mal was mit SQL zu speichern'?
borbih
Beiträge: 9
Registriert: 3. März 2009 17:27

Beitrag von borbih »

schreib doch gleich suche in Google hier wird dir nicht geholfen weil ja Foren für Experten sind wer braucht schon Anfänger wir sind alle schlau geboren wozu noch jmd. helfen
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Du hast offensichlicht 0 Ahnung von SQL. Was hast du bis jetzt gemacht, um dich in diesem Thema einzuarbeiten? Welches Datenbanksystem willst du verwenden? Wo ist dein konkretes Problem?
borbih
Beiträge: 9
Registriert: 3. März 2009 17:27

Beitrag von borbih »

Ich kann die ganzen SQL Statements kannst mich ja Ausfragen wenn du willst Vorahnung von SQL habe ich. Das ist ja nicht mein Problem, wenn du meinen Beitrag gelesen hättest dann würdest du das ja sehen.


Ich brauche paar Beispiel wie das jmd. gemacht hat oder willst du mir sagen das ich einfach in meinen C++ Code SELCT FROM TABLE usw. reinschreiben kann.
Die zweite Frage war ja was für ein Datenbanksystem(MYSQL, Postgree) kann ich verwenden ob ich eins selber einrichten muss mit XAMPP oder sonstwas. Oder gibt es da eine andere Möglichkeit?
franzf
Beiträge: 3114
Registriert: 31. Mai 2006 11:15

Beitrag von franzf »

Nimm SQLite als Datenbank. Für dich wirds reichen.
Und dass du Ahnung hast von SQL, geht aus deinem ersten Post nicht hervor. Die Frage "Braucht man da eine SQL Datenbank" legt eigentlich anderes nahe.

Wirf doch mal den Assistant an und such nach "Database", wäre das erste was ich gemacht hätte. Dann stößt du auch auf "QSqlDatabase" und auf Infos, wie du das mit Qt verwendest. Und ja, du musst deine "ganzen Variablen in der DB speichern", zu mindest diejenigen, welche du beim nächsten Start wieder haben willst.

Aber wenn es wirklich um so simple Sachen wie Fenstergröße, Einträge einer Combobox, etc. geht, nimm doch QSettings! Oder hast du wirklich zig gleiche Datensätze (am besten komplexere), so dass sich ne DB lohnt?
CLRS530
Beiträge: 155
Registriert: 8. Oktober 2007 18:00

Beitrag von CLRS530 »

Wenn du nicht einmal weißt, wie SQL funktioniert, was helfen dir dann irgendwelche Abfragen, die man überall leicht aufschnappen kann. SQL ist sozusagen ein eigenes Programm, dem du Befehle schickst und Antworten bekommst. Das Programm muss auf jedem PC laufen, auf dem du einfach mal was mit SQL speichern willst.
Für dein Bedarf ein paar eingegebene Daten zu Speichern erscheint mir so etwas auch als sehr unangemessen. Benutze dafür lieber entweder eine normale Textdatei oder XML.
Hier kann und will und wird dir keiner die Grundlagen von SQL von der Einrichtung eines Servers aufzählen. Dazu kommt scheinbar auch noch eine nötige Einführung in den Befehlssatz der C++ Sprache.
Ich gebe dir nur ein paar Stichworte. QSQL*, XAMPP, Google
solarix
Beiträge: 1133
Registriert: 7. Juni 2007 19:25

Beitrag von solarix »

Vorahnung von SQL habe ich. Das ist ja nicht mein Problem, wenn du meinen Beitrag gelesen hättest dann würdest du das ja sehen.
Wo soll man das lesen können?
schreib doch gleich suche in Google
gute Idee.. das hätte wirklich was gebracht:
http://www.google.ch/search?q=Qt+SQL+Query
willst du mir sagen das ich einfach in meinen C++ Code SELCT FROM TABLE usw. reinschreiben kann.
Ja, das ist tatsächlich (fast) so..bitte gut durchlesen:
http://doc.trolltech.com/4.5/qtsql.html ... ng-a-query
ob ich eins selber einrichten muss mit XAMPP
XAMPP ist sicher kein schlechter Anfang.. falls dir das zu Aufwendig ist, kannst du auch erste Gehversuche mit SQLite machen.

Weitere Infos zu SQLite und anderen unterstützten Datenbank-Drivers:
http://doc.trolltech.com/4.5/sql-driver.html
VuuRWerK
Beiträge: 82
Registriert: 11. Juni 2007 20:46
Wohnort: Dresden

Beitrag von VuuRWerK »

Damit Du Dich nicht überarbeitest: http://lmgtfy.com/?q=Qt+SQL+Query

:)

Gut Schuß
VuuRWerK ;)
Es gibt nur 3 natürliche Feinde des Programmierers: Tageslicht, frische Luft und das unerträgliche Gebrüll der Vögel.
Oft ist die Ursache des schwarzsehens lediglich ein verrutschen des Bretts vorm Kopf =)
borbih
Beiträge: 9
Registriert: 3. März 2009 17:27

Beitrag von borbih »

Ja solche Beispiele habe ich gebraucht Danke. Habe auch die Daten in einer Datenbank gespeichert. Bloß habe ich das problem wenn ich es laden will das ich in dem query nichts habe.

Ladet man die Datenbak so wie man es auch speichern will oder muss man die Datenbank anders laden?

Code: Alles auswählen

	if (!correctDatabaseFileVersion(nameStrecke)) {
		QMessageBox::critical(0, qApp->tr(
						"Kann keine Verbindung zur SQL Datenbank aufbaun"), qApp->tr(
						"Kann keine verbindung aufbaun.\n"
							"Klicken sie auf Abbrechen um zu abbrechen."),
						QMessageBox::Cancel);

				return false;
	}

	QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
	db.setDatabaseName(nameStrecke);
	QSqlQuery query("SELECT name,laengeinnen,laengeaussen FROM track;");
So sieht mein code aus und wie gesagt bei dem query ist nix vorhanden in der datei ist schonw as vorhanden also er speichert das richtig.
solarix
Beiträge: 1133
Registriert: 7. Juni 2007 19:25

Beitrag von solarix »

weil meine Kristallkugel im Zuge der Finanzkrise verpfändet wurde, kann ich leider das Problem nicht erraten....was bedeutet genau "und wie gesagt bei dem query ist nix vorhanden"... kommt da noch irgendwelcher Code hinter der Query? Falls nicht: Wie Daten empfangen werden steht unter http://doc.trolltech.com/4.5/qsqlquery.html#details

Auch eine hübsche Sache wäre eine saubere Fehlerbehandlung.. siehe http://doc.trolltech.com/4.5/qsqlquery.html#lastError ... dann müssten wir etwas weniger raten...
borbih
Beiträge: 9
Registriert: 3. März 2009 17:27

Beitrag von borbih »

ja natürlich kommt was dahinter.... die query abfrage dann in die ver. variablen die sql Daten eintragen hier....

Code: Alles auswählen

 setName(query.value(0).toString());
	 setLaengeInnen(query.value(1).toDouble());
	 setLaengeAussen(query.value(2).toDouble());
	 qcout << query.value(0).toString() << " : " << query.value(1).toDouble() << " : " << query.value(2).toDouble() << endl;
Meine Frage bezieht sich auf die Verbindung mit SQLite da ich ja beim verbinden hinschreiben

Code: Alles auswählen

QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
 db.setDatabaseName(nameStrecke); 
da steht ja addDatabase usw. setDatabaseName aber die Datenbank ist ja vorhanden ich will ja keine neue Anlegen sondern eine Öffnen. Ob das was ich hingeschrieben haben in Ordnung ist da ich die Daten nur zum lesen brauche. Ja und wie gesagt wie ich es so habe da kommt nix außer 3 mal die null in der Ausgabe.
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Und jetzt lesen wir uns die Beispiele die QSqlQuery dabeistehen nochmal durch und überlegen uns, was wir vergessen haben könnten...
borbih
Beiträge: 9
Registriert: 3. März 2009 17:27

Beitrag von borbih »

upsala hat geschrieben:Und jetzt lesen wir uns die Beispiele die QSqlQuery dabeistehen nochmal durch und überlegen uns, was wir vergessen haben könnten...

WENN ich es nicht gelesen hätte dann würde ich ja kaum so weit kommen vielleicht passiert ja das man manches nicht sofort kapiert..... könnte ja sein kommt mal schon vor..... dann Fragt man nach ob man was übersehen hat oder es nicht verstanden hat.... Wenn du es schon weißt woran es liegt dann kannst du es ja hinschreiben oder einfach nicht Antworten du musst ja hier nix schreiben.
androphinx
Beiträge: 170
Registriert: 26. Januar 2009 09:19
Wohnort: 127.0.0.2

Beitrag von androphinx »

also borbih,
1. solltest du ganz schnell deinen ton ändern, weil so wie du upsala zugemüllt hast, würde ich dir die richtige antwort jetzt auch nicht mehr hinschreiben.....
2. es gibt da so ein gewisses Entwicklerwerkzeug, das nennt sich Dokumentation. die leute im forum, die schon länger mit qt programmieren wollen sich einfach um andere dinge kümmern, als für andere in der dokumentation rumzuschnüffeln
3. manche z. t. triviale sachen muss man einfach versuchen selber zu verstehen, weil ansonsten "kopiert" man immer nur den code von anderen leuten und man schreibt auf lange sicht kein eigenes programm
4. ich muss dir leider sagen, dass dieser thread wegen dir so aus dem ruder gelaufen ist. dein erster thread ist wirklich total missverständlich, du hast den fehler begangen und solltest jetzt andere hier im forum, vor allem upsala, ni dafür verantwortlich machen........

Mfg androphinx
Antworten