Verwendung einer Datenbank in Qt-Programmen

Alles rund um die Programmierung mit Qt
Antworten
Luftballon
Beiträge: 29
Registriert: 10. Mai 2009 20:03

Verwendung einer Datenbank in Qt-Programmen

Beitrag von Luftballon »

Hallo zusammen,

ich habe mal eine allgemeine Frage:

Wenn man eine Datenbank, z.B. MySQL, in einem Qt-Programm verwendet, dann scheint es mir so, als müsste man die Datenbank auf jedem Rechner, auf dem das Programm laufen soll, installieren. Man kann das Programm also nicht mehr nur in Form der EXE-Datei weitergeben. Stimmt das so?

Oder werden die "Teile der Datenbank", die man für das Programm braucht, mit compiliert und man hat weiterhin nur die EXE-Datei?

Wenn das standardmäßig so nicht sein sollte, gibt es eine Möglichkeit das so hinzubekommen? Oder zumindest so, dass man weitere Datein für das Programm hat, nicht aber die Datenbank direkt mit installieren muss?

Ich freue mich auf eure Antworten!

Beste Grüße,
der Luftballon
Whitefurrows
Beiträge: 138
Registriert: 1. Mai 2006 19:50

Beitrag von Whitefurrows »

Das ist abhängig davon, wie und zu welchem zweck die Software genutzt werden soll.

Du kannst z.B. eine MySQL-Datenbank auf einem Server (oder auch PC) einrichten und auf die kann jeder mit der Software zugreifen, sofern er die entsprechenden Zugriffsberechtigungen hat.

Eine weitere alternative wäre eine File-Datenbank wie z.B. SQLite, die (Datei bzw. Datenbank) kannst Du dann mit deiner Software ausliefern. Dann hättest du allerdings mindestens zwei Dateien, dein Programm und die Datenbank.
franzf
Beiträge: 3114
Registriert: 31. Mai 2006 11:15

Beitrag von franzf »

Dein Problem ist nicht die Datenbank, sondern die Unterstützung seitens Qt.
Dafür verwendet Qt nämlich plugins. So weit ich die Soku verstehe, kann man bei statisch kompiliertem Programm (nur eine exe) Keine Plugins verwenden, schau hier, wie man das dann macht.
Bei dynmischem Linken gibts auch Infos in der Doku, wie es richtig geht.

Sollte es auch um das Anlegen der Tabellen gehen, kannst du im Programm nachfragen, ob dein Layout in der Form schon existiert, und falls nicht einfach per SQL-Befehlen die Tabelle (vllt. sogar samt Daten) anlegen. Kannst dir das ja in einer Datei hinterlegen und bei deinem Programm mitliefern.

Grüße
Franz
Luftballon
Beiträge: 29
Registriert: 10. Mai 2009 20:03

Beitrag von Luftballon »

Vielen Dank für eure bisherigen Antworten!

Jetzt möchte ich gerne loslegen und die MySQL-Datenbank verwenden. Doch ist der Treiber für diese Datenbank nicht installiert. Als Editor verwende ich den Qt Creator und die MySQL-Datenbank habe ich über XAMPP installiert.

Hier gibt es eine Anleitung, wie man den Treiber erstellen kann:
http://doc.trolltech.com/4.5/sql-driver ... on-windows

Damit komme ich leider nicht klar. In dem Verzeichnis von XAMPP ist MySQL hier lokalisiert:
c:\xampp\mysql

Die Datei "mysql.exe" liegt hier:
c:\xampp\mysql\bin\mysql.exe

Mit meinem ungeübten Auge finde ich dort nirgends Lib- und Include-Datein.

Und dann habe ich festgestellt, dass in meiner Windows-Eingabeaufforderung weder der Befehlt "qmake" noch "nmake" (siehe Link) funktioniert.

Über Hilfe würde ich mich riesig freuen.

Beste Grüße,
der Luftballon
pfid
Beiträge: 535
Registriert: 22. Februar 2008 16:59

Beitrag von pfid »

franzf hat geschrieben:Dein Problem ist nicht die Datenbank, sondern die Unterstützung seitens Qt.
Dafür verwendet Qt nämlich plugins.
Du kannst beispielsweise auch MySQL Support direkt beim Bauen der Quellen konfigurieren (ob das schlussendlich nur automatisch ein Plugin baut, oder direkt den Support in die Qt Lib kompiliert, weiß ich aus dem Kopf nicht. Jedenfalls habe ich statisch gelinkte Programme schon problemlos mit MySQL ausgeliefert)
Luftballon hat geschrieben:Vielen Dank für eure bisherigen Antworten!

Jetzt möchte ich gerne loslegen und die MySQL-Datenbank verwenden. Doch ist der Treiber für diese Datenbank nicht installiert. Als Editor verwende ich den Qt Creator und die MySQL-Datenbank habe ich über XAMPP installiert.

Hier gibt es eine Anleitung, wie man den Treiber erstellen kann:
http://doc.trolltech.com/4.5/sql-driver ... on-windows

Damit komme ich leider nicht klar. In dem Verzeichnis von XAMPP ist MySQL hier lokalisiert:
c:\xampp\mysql

Die Datei "mysql.exe" liegt hier:
c:\xampp\mysql\bin\mysql.exe

Mit meinem ungeübten Auge finde ich dort nirgends Lib- und Include-Datein.

Und dann habe ich festgestellt, dass in meiner Windows-Eingabeaufforderung weder der Befehlt "qmake" noch "nmake" (siehe Link) funktioniert.

Über Hilfe würde ich mich riesig freuen.

Beste Grüße,
der Luftballon
Punkt 1: welche qt version?

Punkt 2: mingw, oder selbst kompilierte quellen?

Punkt 3: ich vermute du brauchst das hier: http://dev.mysql.com/downloads/mysql/5.1.html#downloads
Nachdem du das ausgepackt/installiert hast, findest du irgendwo die Lib+Header. Kann sein, dass es selbiges auch irgendwo extra gibt, ich weiß aber nur noch, dass ich mich beim letzten mal auch tot gesucht habe, und dann schlussendlich das riesen Paket geladen hab, wo dann Lib und Header drin waren.
Da bin ich mir jetzt etwas unsicher, man möge mich korrigieren wenn ich falsch liege.

Punkt 4: Wenn auf deiner Kommandozeile kein nmake und qmake funktioniert, sind selbige nicht in deinem Pfad. IdR nimmst du auch nicht einfach die Dosbox (start -> ausführen -> cmd), sondern die Msvc Eingabeaufforderung, die läd dir die Umgebungsvariablen mit.
Ansonsten bei Bedarf den Pfad erweitern (Win-Taste + Pause -> Einstellungen -> Erweitert -> Umgebungsvariablen (o.ä., gerade frei aus dem Kopf)
Luftballon
Beiträge: 29
Registriert: 10. Mai 2009 20:03

Beitrag von Luftballon »

pfid, vielen Dank für die Antwort!

Hier die Rückmeldungen zu deinen Fragen:
1.
Version 4.5, denke ich.

2.
Ich habe "Qt SDK: Complete Development Environment" heruntergeladen und installiert. Dabei ist der "Qt Creator" bei dem ich nur auf einen grünen Button klicken muss und er compiliert das was ich im Editor geschrieben habe. ;-)

3. & 4.
Schaue ich mir später genauer an.
Luftballon
Beiträge: 29
Registriert: 10. Mai 2009 20:03

Beitrag von Luftballon »

Punkt 3:
Ich habe das Paket installiert, der Server läuft und die Lib-/Include-Datein sind jetzt vorhanden.

Punkt 4:
Ich habe die Stelle mit den Umgebungsvariablen gefunden, allerdings weiss ich nicht was ich dort machen muss. Auch kenne ich nur die Eingabeaufforderung über (start -> ausführen -> cmd), die ist dieselbe die man unter (Start -> Programme -> Zubehör ->Eingabeaufforderung) erreicht.

Ich habe gerade mal etwas geschaut und bei mir liegt der Compiler wohl in:
c:\Qt\2009.02\mingw\bin\g++.exe
bzw.
c:\Qt\2009.02\mingw\bin\mingw32-g++.exe
und viele andere mehr.

Aber eine nmake.exe oder qmake.exe finde ich dort nicht.
franzf
Beiträge: 3114
Registriert: 31. Mai 2006 11:15

Beitrag von franzf »

http://doc.trolltech.com/4.5.1/install-win.html
Da steht es was in den Path muss (und einiges mehr..)
Im Beispiel ist das c:\Qt\4.5.1\bin, musst es halt auf deine Anforderungen anpassen.
Als ich das letzte mal Qt auf Windows installiert habe (ist Jahre her) musste man auch noch eine neue Umgebungsvariable "QTDIR" setzen, das scheint heute nicht mehr nötig.
pfid
Beiträge: 535
Registriert: 22. Februar 2008 16:59

Beitrag von pfid »

Luftballon hat geschrieben:Punkt 3:
Ich habe das Paket installiert, der Server läuft und die Lib-/Include-Datein sind jetzt vorhanden.

Punkt 4:
Ich habe die Stelle mit den Umgebungsvariablen gefunden, allerdings weiss ich nicht was ich dort machen muss. Auch kenne ich nur die Eingabeaufforderung über (start -> ausführen -> cmd), die ist dieselbe die man unter (Start -> Programme -> Zubehör ->Eingabeaufforderung) erreicht.

Ich habe gerade mal etwas geschaut und bei mir liegt der Compiler wohl in:
c:\Qt\2009.02\mingw\bin\g++.exe
bzw.
c:\Qt\2009.02\mingw\bin\mingw32-g++.exe
und viele andere mehr.

Aber eine nmake.exe oder qmake.exe finde ich dort nicht.
Okay, an dem Punkt steige ich dann aus, ich habe mich bisher erfolgreich vor MinGw gedrückt, und die Quellen immer selbst gebaut, und den MSVC Compiler verwendet.

Eben nochmal die VBox gebootet, um nachzuschauen. Wie auch im Link von franz angegeben findest du die Visual Studio Eingabgeaufforderung hier:
Startmenü\Programme\Microsoft Visual C++ 2008 Express Edition\Visual Studio Tools

Bringt dir nicht viel, da du VS wohl nicht installiert hast, sondern den MinGW Compiler verwenden willst. Du brauchst daher auch kein nmake (=Visual Studio). Die normale Dos-box sollte auch reichen, prüfe einfach mal wie die Umgebungsvariablen gesetzt sind mit

Code: Alles auswählen

PATH [enter]
oder

Code: Alles auswählen

echo %QTDIR%
Prinizpiel müssen die Programme (qmake, gcc) eben in deinem Pfad stehen, damit du sie von einem beliebigen Ort ausführen kannst.
Antworten