Suche Datenbanksystem



  • Wenn ich in meinen kleinen Programmen immer etwas speichern wollte, habe ich es per fstream in einer .txt File gemacht und mir anschließend nen kleinen Parser zum Auslesen gebaut.
    Das ist aber - glaube ich - nicht die feine Art und sehr fehleranfällig.

    Suche ein sehr einfaches und gute verstehendes Tutorial, wo man mit C++ Daten in einer Datenbank (z.B. SQL oder was ihr mir noch so empfehlen könnt) etwas speichert und auch wieder im Programm ausgeben lässt.

    Was könnt ihr mir so empfehlen.
    Vielen Dank und ein netten Abend noch.

    Ps.
    Morgen ist wieder Ruuud-time 😉



  • Ich denke du solltest dich einfach mal entscheiden was du für eine DB benutzen möchtest. 😉

    http://www.google.ch/search?hl=de&client=firefox-a&hs=75j&rlz=1R1GGGL_de___CH343&q=mysql+c%2B%2B&btnG=Suche&meta=&aq=f&oq=



  • Du könntest SQL benutzen in Verbindung mit Qt zum Beispiel.
    Schau mal bei der Qt Referenz vorbei;-)



  • Dieses DBMS habe ich gerade jemandem in einem Nachbarthread vorgeschlagen: http://www.sqlite.org/ Wird auch im iPhone eingesetzt. Es ist in C geschrieben und daher leicht in C++ Anwendungen zu integrieren.



  • Dateien sind meist durchaus die richtige Wahl.
    Datenbanksysteme werden vorteilhaft, wenn du sehr viele Daten speichern musst und/oder wenn mehrere Prozesse gleichzeitig auf die Daten zugreifen müssen - besonders dann, wenn diese Prozesse auch noch auf verschiedenen Rechnern laufen.

    Eine Möglichkeit, mit MySQL-Datenbanken in C++ zu arbeiten, ist mysql++.



  • Danke für die schnellen Tipps.

    Aber MySQL läuft ja nicht lokal (außer durch ein virtuellen Server oder so).
    Wollte gerne eine Datenbank haben die Lokal und ohne Installation läuft. So das wenn ich z.B. ein Vokabeltrainer habe, den auch ein PC-Noob schicken kann ohne das er sich vorher irgendwelche Datenbanken anlegen/installieren muss. 🙂



  • Athar schrieb:

    Datenbanksysteme werden vorteilhaft, wenn du sehr viele Daten speichern musst und/oder wenn mehrere Prozesse gleichzeitig auf die Daten zugreifen müssen - besonders dann, wenn diese Prozesse auch noch auf verschiedenen Rechnern laufen.

    Und wenn Du nach verschiedenen Kriterien in den Daten suchen darfst. SQLite ist übrigens kein serverbasiertes System, sondern ein eingebettetes DBMS, d.h. es wird vollständig in die Anwendung integriert.



  • Lese mir gerade paar nette SQL-Tuts durch. Die erklären da zwar, welche Bedeutung die einzelnen Befehle haben und wie man eine Tabelle erstellt aber WO gebe ich das ganze ein?

    Wenn man z.B. per CREATE_TABLE seine erste Tabelle erstellen will?!



  • Ich denke sqlite ist die beste Wahl, speziell für kleine Programme, wo nicht mit großen Datenmengen gerechnet werden muss.
    Falls es größer wird, kann ein besseres DB-System nicht schaden - was nicht heißt, dass da ein Server laufen muss!
    Schau mal nach "MySQL embedded" und "virtuoso". Sind beides Open-Source-Systeme, die ohne einem laufenden Server auskommen.



  • Wenn du nur ein paar Daten speichern möchtest, schau dir mal boost serialization an.



  • l'abra d'or schrieb:

    Ich denke sqlite ist die beste Wahl, speziell für kleine Programme, wo nicht mit großen Datenmengen gerechnet werden muss.
    Falls es größer wird, kann ein besseres DB-System nicht schaden - was nicht heißt, dass da ein Server laufen muss!
    Schau mal nach "MySQL embedded" und "virtuoso". Sind beides Open-Source-Systeme, die ohne einem laufenden Server auskommen.

    Danke. Hat mir aber noch nciht meine Frage beantwortet, wo ich genau die Datenbank erstelle, also wo ich die Befehle eingebe. Braucht man dafür nen sql editor oder was?



  • klaudiiii schrieb:

    WO gebe ich das ganze ein?

    Wenn man z.B. per CREATE_TABLE seine erste Tabelle erstellen will?!

    In der Funktion (->API für C/C++, bindings für python oder was auch), mit der du auf die DB zugreifst?
    Wenn du nur testen willst, gibt es meistens auch eine Console. Da kannst du dich mit nem MySQL-Server verbinden oder eine sqlite-Datei öffnen.

    Ein schneller Google-Fund (gibt deutlich mehr unter "sqlite tutorial"):
    http://souptonuts.sourceforge.net/readme_sqlite_tutorial.html



  • Also erstmal unabhängig von mein Vorhaben, möchte ich erstmal ne kleine (serverless) SQL Datenbank mit einer Tabelle erstellen.

    Bin mit den Befehlen ein wenig vertraut und weiß halt nur nicht, wo ich die Eingeben soll:

    Tabelle Customer
    (First_Name char(50),
    Last_Name char(50),
    Address char(50),
    City char(50),
    Country char(25),
    Birth_Date date)



  • sicher gibts irgendwie 1000 Editoren aber es muss doch auch ne Möglichkeit geben ohne Schnick schnack ne normale Datanbankdatei zu erstellen



  • l'abra d'or schrieb:

    Ein schneller Google-Fund (gibt deutlich mehr unter "sqlite tutorial"):
    http://souptonuts.sourceforge.net/readme_sqlite_tutorial.html

    Zitat daraus:

    Getting Started
    Common Commands

    To create a database file, run the command "sqlite3", followed by the database name. For example, to create the database "test.db", run the sqlite3 command as follows:

    Was also willst du noch? Und nein, es gibt keine Möglichkeit eine "allgemeine" Datenbankdatei anzulegen. Das Dateiformat ist abhängig vom DB-System. Punkt.
    Also mach deine ersten Erfahrungen mit SQLITE, ist das schnellste und einfachste, um mit SQL vertraut zu werden.



  • Ok dazu muss ich mir ja erstmal sqlite runterladen:
    http://www.sqlite.org/download.html

    Aber welches? Gibt da vieles. Was is das normale standard sqlite, welches ich runterladen muss.



  • Klaudiii schrieb:

    Aber welches? Gibt da vieles. Was is das normale standard sqlite, welches ich runterladen muss.

    Sag uns, auf welchem System du arbeitest. Wenn es ein Linux ist, hat deine Distribution wahrscheinlich eh schon passende Pakete parat. Wenn du unter Windows bist, installier einfach das erste gelistete Binary ("A command-line program for accessing and modifying SQLite databases.").
    Wenn du das dann später einbinden willst, holst du dir eine der source-Pakete (steht doch groß daneben, für was es empfohlen ist) und kompilierst es in dein Programm ein.



  • Anscheinend bin ich irgendwie zu dumm dafür.

    In PHP hau ich den SQL Code einfach in nem Query und zack wurde die Tabelle angelegt.

    In C++ schaff ich es nicht.



  • Klaudiii schrieb:

    Anscheinend bin ich irgendwie zu dumm dafür.

    Eher zu hektisch...

    In PHP hau ich den SQL Code einfach in nem Query und zack wurde die Tabelle angelegt.

    In C++ schaff ich es nicht.

    Hast du denn schon Erfahrung mit SQL? Das klang bisher nicht so...
    Die sqlite.org-Seite hält alle Infos, die du brauchst.

    Und BITTE schreib in deinem nächsten Post konkret, was du versucht hast! Eine Diskussion ohne Fakten kostet nur unnötige Energie...



  • Ich möchte einfach nur ne SQL Datenbank mit paar Zeilen/Spalten erstellen ohne 10000 Tools/Clients/Sourcecode etc. runterzuladen. Dürfte doch nicht so schwer sein?

    Mal ne andere Frage:
    Wenn du nun eine SQL DB mit den Spalten "Vorname" + "Nachname" hast, wie stellst du das am schnellsten an?


Anmelden zum Antworten