Wie MYSQL <-> C ?

Gast #1704326
Hallo,

folgende Problemstellung:

1x Server mit MYSQL Datenbank

nun soll ein Client für Windows entwickelt werden der einfache 
Datenbankabfragen ausführt. Ein einfaches Konsolenprogramm genügt. Die 
Sprache sollte C oder C++ sein. Ich finde im Internet jedoch keine 
brauchbaren Informationen. Ich suche also ein Tutorial, Buch oder 
Beispielcode.

Vielen Dank
#1719125
Warum sollte sie unbrauchbar sein?

Man kann halt nur mysql damit ansprechen,

ODBC hat durchaus ein sinnvolles Konzeot;
Mit dem entsprechenden ODBC-Treiber (ODBC für mysql, oder
ODBC für Ms-SQL...) richtet man eine Datenquelle in der
Systemsteuerung ein und gibt dem Ding einfach einen
Namen.

Dein Programm würde dann nicht mehr zu wissen brauchen,
ob die Daten aus mysql oder sonstwo herkommen, sondern
einfach über den vergebenen Namen darauf zugreifen.
Bei Bedarf kann man die Datenbank darunter austauschen, ohne
die Programme zu ändern.

Insofern wäre dein Programm portabel bzgl. des DB-Systems;
dafür nicht portabel bzgl. Betriebssystem.
Mit libmysql ist es auf mysql fixiert, dafür über die
Betriebssysteme hinweg portabel (und natürlich etwas
effizienter, weil die Zwischenschicht ODBC entfällt).
#1719255
Klaus Wachtler schrieb:
> Bei Bedarf kann man die Datenbank darunter austauschen, ohne
> die Programme zu ändern.

In der Theorie. In der Praxis funktioniert das aber meist aufgrund von 
subtilen oder weniger subtilen Unterschieden zwischen den verschiedenen 
SQL-Dialekten nur bei relativ einfach aufgebauten Datenbanken und 
Queries.

Selbst z.B. bei MySQL ein (vordergründig einfacher) Wechsel zwischen 
MyISAM- und InnoDB-Tabellen bringt durchaus so seine versteckten Fallen 
mit sich...

Andreas
Gast #1719419
Klaus Wachtler schrieb:
> Insofern wäre dein Programm portabel bzgl. des DB-Systems;
> dafür nicht portabel bzgl. Betriebssystem.
> Mit libmysql ist es auf mysql fixiert, dafür über die
> Betriebssysteme hinweg portabel (und natürlich etwas
> effizienter, weil die Zwischenschicht ODBC entfällt).

warum das denn, mein Programm läuft ohne Probleme mit ODBC unter Windows 
wie unter Linux. Und die Zwischenschicht ist sehr klein, bei den 
heutigen CPU merkt man davon nichts, auch bei mehre Tausenden 
Datensätzen.
Gast #1719863
Bloss nicht die proprietäre MySQL C Schnittstelle verwenden, damit bist 
du auf Gedeih und Verderb auf diese Datenbank festgenagelt.
Man verwendet ODBC als herstellerunanabhängige Schnittstelle, da sind 
die Aufrufe standardisiert, ggf. unter Verwendung einer Zwischenschicht 
aus MFC, ADB, DotNET oder sonst einer Bibliothek, und entwickelt erst 
mal mit MySQL als Datenbank. Muss man dann eines Tages die Datenbank 
wechseln, macht man das einfach. Die Unterschiede der Datenbanken sind 
nicht so gross (manch eine hat manchmal merkwürdige Syntax).

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 16 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.