SQL Datenbank vom Programm anlegen (embedded)?

Hallo,

ich möchte für ein Projekt eine SQL Datenbank verwenden bzw. möchte diese anlegen. Nun habe ich bereits ein grundsätzliches Problem, ob ich dies nun aus dem Programm (C++, Visual Studio) heraus tue (also embedded MySQL, Client und Server würden vom selben Programm gestartet werden) oder den Server irgendwie anders (über ein Script???, dass aber auch vom Programm gestarte wird) starte und dann nur vom C+±Programm darauf zugreife?

Die DB soll ja nur einmal (beim ersten Programmstart) angelegt werden und dann will ich nur reinschreiben und abfragen, deshalb weiß ich nicht was besser wäre, bzw. wie man so etwas überhaupt machen sollte? Vom Programm aus müsste ich auch irgendwie abfragen, ob die DB schon existiert oder nicht???

Falls mir jemand einen Rat bzw. eine Empfehlung geben könnte, wäre prima. Ich weiß grade gar nicht wie ich überhaupt anfangen soll…

Vielen Dank schon mal.
Verena

Hallo,

ich möchte für ein Projekt eine SQL Datenbank verwenden bzw.
möchte diese anlegen. Nun habe ich bereits ein grundsätzliches
Problem, ob ich dies nun aus dem Programm (C++, Visual Studio)
heraus tue (also embedded MySQL, Client und Server würden vom
selben Programm gestartet werden) oder den Server irgendwie
anders (über ein Script???, dass aber auch vom Programm
gestarte wird) starte und dann nur vom C+±Programm darauf
zugreife?

hast du die sachen schon, oder stellst du dir das so vor .

Weil diese ganze problemlösung ist schon einmal zusammengefasst worden.
die kostenlose embedet datenbank mit einem sql wortschatz ist sqlite
das arbeitet mit einer datei und verhält sich wie sql, womit der geleiche syntax gemeint ist.

http://www.sqlite.org/

Die frage bleibt aber warum MySQL , bzw was soll noch damit geschehen, nutzt das auch ein anderes programm, oder andere user ??.
Warum MySQL , geht nicht auch eine andere DB form ?
Oder ist es nur Hobby, dann wäre MySQL eh schon zu teuer , denn kostenlos für die eigene entwicklung gibts das auch nicht.

Beschreibe bitte kurz, was du vor hast und welchen Tech du nutzen willst. Wenn du z. B. mit .Net und MS SQL arbeiten willst, und vorausgesetzt, der Datenbankserver ist auf dem Zielrechner installiert und aktiv, kannst du recht einfach mit .Net - Klassen SqlConnection und SqlCommand und den Information_Schema - Views der Master-Datenbank prüfen, ob deine Datenbank bereits vorhanden ist. Falls nein, kannst du mit SqlCommand - Methode ExecuteNonQuery ganz normal SQL-Statements, also auch Create Database und Create Table abschicken.

MySql kostet so weit ich weiss immer noch nichts. MS SQL hat auch eine abgespeckte Gratisversion.

Ich hatte mir vor einer Weile von mysql.de mysql 5.1.35 runtergeladen. War auch frei. Dort war ein embedded Server dabei. Das habe ich dann meinem Programm zugefügt. Etwas mit rumgespielt habe ich auch schon (in meinem C++ Programm), allerdings konnte ich nicht auf die mitgelieferte Beispiel DB zugreifen. Hatte ein Beispiel von der der mysql-Website ausprobiert. Wäre sqlite besser? Oder ist das dasselbe?

In der DB sollen mehrere User angelegt werden, die über mein Programm zugreifen können. Muss auch nicht unbedingt MySQL sein… Was könnte man sonst verwenden? In der DB müssten mehrere User angelegt werden, die sich über mein Programm einloggen, und dann sollen Daten rein, die ständig erweitert werden; und Datensätze abrufen muss auch gehen.

Mein eigentliches Problem ist zunächst der DB Server, den ich starten muss und zwar jedesmal beim Programmstart bzw. beim Neustart des Rechners und zwar von meinem Programm aus. Oder eben irgendwie anders über ein Script, was ich mitliefern muss, dass aber dann auch von meinem Programm ausgeführt werden müsste. Und die DB anlegen müsste ich zu allererst auch von meinem Programm aus. Das Programm muss sozusagen alles alleine machen: DB anlegen, DB Server und Client starten, Daten anlegen und rein schreiben.

Muss der DB-Server bei embedded MySQL denn noch „installiert“ werden, oder ist der dann sozusagen über mein Programm mitinstalliert und ich starte ihn nur?

Das ganze programmiere ich als Windows Forms Anwendung im Visual Studio 2008.

Wenn du ohnehin auf Microsoft-Plattform bist, kannst du MS SQL Express nehmen, das ist eine gratis Version von MS SQL, die etwas gedrosselt, bzw. abgespeckt ist. Eine Windows-Forms-Anwendung bekommst du meiner Meinung nach einfacher hin mit VB.Net oder C#, als mit C++. Was die Datenbank angeht: Im Normalfall liegt die Datenbank auf einem Server und läuft nonstop, eine Anwendung wie deine läuft auf einem Client und klinkt sich zu der immer laufenden Datenbank immer nach bedarf ein und aus. Selbst wenn deine Anwendung auf dem selben Rechner läuft wie die Datenbank, ist der Datenbankserver meistens so installiert, dass er gleich nach Hochfahren des Rechners gestartet wird.

MS SQL schaue ich mir mal an. Die ganze Grafik habe ich schon in C++ geschrieben, deshalb will ich jetzt nicht unbedingt zu C# oder so wechseln und alles nochmal machen…

Langsam kommt Licht ins Dunkel… :o) Das Installieren ist mir noch nicht so ganz klar, muss ja alles automatisch gehen, deshalb kam ich auch auf die embedded Version, weil ich dann alles von meinem Programm aus machen könnte. Werde MS SQL mal lokal installieren, vielleicht geht das ja ohne viel zutun… Embedded lasse ich lieber sein…

Vielen Dank erstmal.
Verena

Ich hatte mir vor einer Weile von mysql.de mysql 5.1.35
runtergeladen. War auch frei. Dort war ein embedded Server
dabei. Das habe ich dann meinem Programm zugefügt. Etwas mit

ah gerade gesehen, als open source project gibt es das, aber nicht für commerzielle zwecke, da muss man dann immernoch lizensieren.

rumgespielt habe ich auch schon (in meinem C++ Programm),
allerdings konnte ich nicht auf die mitgelieferte Beispiel DB
zugreifen. Hatte ein Beispiel von der der mysql-Website
ausprobiert. Wäre sqlite besser? Oder ist das dasselbe?

nö, wenns der mysql für dich tut, nutzen die möglichkeiten .

also je nach anwendungsgebite, ein MS Server oder auch MYSql braucht ewig viel platz als einzelserver, deswegen gibt es SQLite wenn mann nur für seine datenbank einen SQL server haben will.

Das mit MS-SQL express , das würd ich aber nur empfehlen wenn wirklich ein server laufen soll, denn er verbraucht richtig und muss auch noch laufen wenn dein programm gestartet ist.

Ein Server aufsetzen der dann nur von einem Programm benutzt wird ist unsinn, auch gibts dann probs mit den daten.

Server ist erst dann sinnig wenn andere gleichzeit etc zugreifen müssen.

Beschreibe bitte kurz, was du vor hast und welchen Tech du
nutzen willst. Wenn du z. B. mit .Net und MS SQL arbeiten
willst, und vorausgesetzt, der Datenbankserver ist auf dem

hat das was mit embedded zu tun ???

MySql kostet so weit ich weiss immer noch nichts. MS SQL hat
auch eine abgespeckte Gratisversion.

doch auch MySQL kostet lizenz , für dich installier freak nicht, aber für developer die das ins eigene heim holen wollen kostet es, ausser man macht open source, aber das kann ich meiner Firma schwer verklickern das ich ihren code später veröffentliche um lizenzgebühren zu sparen.