Fragen zur Klarstellung wie das abläuft mit DB
-
Hallo,
ich möchte ein KDE Programm schreiben,welches eine DB einsetzt.Jetzt soll sie aber einige Bedingung erfüllen,sonst lohnt sich das nicht,dann programmiere ich mir meine eigene kleine DB.Gibt es Möglichkeiten eine DB einzusetzten,wo der Enduser die Klassen nicht installiert hat.Also das die benoetigten DB Klassen mit in meinem Progamm eingebunden werden.Sodass man davon unabhängig ist.
Oder gibt es da schon was von KDE/Qt4 aus,was ich nutzten koennte?
Des Weiter soll das System verschont bleiben,ich will nicht in irgendwelchen Verzeichnissen rumwusseln,wenn dann soll die DB im gleichen Verzeichnis sein wie auch das Programm.
Gibt es da irgendwas was für mich "perfekt" wäre?
Würde mich über ein paar Tipps sehr freuen
Danke im Voraus
-
Also, wenn ich das jetzt recht verstanden habe suchst du ne db, die der Anwender nicht installieren muss. Da du mit der KDE arbeitest nutzt du ebenfalls auch linux und somit fällt Access flach.
Als gute alternative aus meiner sicht ist hier SQLite http://www.sqlite.org. Da musst du deinem Programm nur eine DLL Datei beilegen das die Datenbankfunktionalität übernimmt.
-
Ok,danke schonmal für die Antwort.
Ich habe jetzt folgendes gemacht:
- Auf meinem Entwicklersystem habe ich die sqlite Klassen installiert.
- Testprogramm erfolgreich kompiliert und ausgefuehrtJetzt soll das Testprogramm ja auch auf meinem Testsystem laufen,wo nicht die sqlite Klassen installiert sind,nur da meckert er natuerlich rum.
Meine Frage jetzt:Was muss ich g++ beim kompilieren alles mitgeben,damit ich das Testprogramm auch auf demTestsystem zum laufen bekomme?
Hoffe das war verstänlich erklärt.
-
Also, ich nutze die Wrapperklassen von http://www.codeproject.com/database/CppSQLite.asp
und muss dann nur noch die sqlite3.dll mitgeben, dann funktioniert mein programm ohne probleme.
-
ähm *.dll(windows) und KDE(Linux) das funktioniert nicht
@porcupine tree: mach folgendes kopier die .so datei(en) von sqlight in dein verzeichniss und benutze folgendes wrapper-script zum starten des Programms:
!#/bin/sh cd <Pfadm in dem sich das programm befindet> LD_LIBRARY_PATH="./" ./<dein programm> $@
bei diesem kleine wrapper script musst du nur den Pfad anpassen und dann sollte es klappen
Die Varibale LD_LIBRARY_PATH teilt dem dynamic loader mit, wo er noch zusätzlich nach den benötigten libs suchen muss.
das $@ gibt alle cmd-line parameter an das programm weiter.
gruß
stephan
-
Na wenn das nix is,werde ich demnaechst einmal testen.
Danke schoen!
PS: Weiß jmd wie ich unter SQLite mir alle Tabellen einer Datenbank ausgeben lassen kann?Mit show databases; bzw show tables; geht es nich,da es anscheinend kein show oder dergleichen gibt