Forum: PC-Programmierung Wie MYSQL <-> C ?


von Martin (Gast)


Lesenswert?

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

von Guest (Gast)


Lesenswert?


von Klaus W. (mfgkw)


Lesenswert?

ok, dann spare ich mir eine pampige Antwort :-)

von ... (Gast)


Lesenswert?


von Johannes G. (Gast)


Lesenswert?


von Jürgen W. (lovos)


Lesenswert?

>http://openbook.galileocomputing.de/c_von_a_bis_z/...

Habe ich mir angeschaut und gleich Fehler entdeckt. Z.B.

Datentyp: LONGTEXT,LONGBLOB
Speicherbedarf: Zeichenzahl+4 Byte
Erkärung: Zeichenkette mit variabler Länge bis max. 232 Zeichen

Das muss natuerlich 2^32 heissen.
So ist das mit den freien Produkten. Sie sind halt nicht fehlerfrei.

von Klaus W. (mfgkw)


Lesenswert?

Das heißt im Umkehrschluß, daß kommerzielle Produkte fehlerfrei sind? 
:-)

von Peter (Gast)


Lesenswert?

Und warum nicht einfach über ODBC gehen, es gibt doch für MySQL ein ODBC 
Treiber.

von faustian (Gast)


Lesenswert?

Warum ist die libmysqlclient denn unbrauchbar?

von Klaus W. (mfgkw)


Lesenswert?

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).

von Andreas F. (aferber)


Lesenswert?

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

von Klaus W. (mfgkw)


Lesenswert?

Ich sprach ja auch nur vom Konzept (inzwischen auch
gelegentlich Konzeot genannt).

von Peter (Gast)


Lesenswert?

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.

von Klaus W. (mfgkw)


Lesenswert?

ok, daß es ODBC auch unter Windows vernünftig gibt, wusste ich nicht.
Meine letzte Begegnung mit ODBC ist 10 oder 15 Jahre her...
Inzwischen hatte ich DBs nur direkt angesprochen.

von Peter (Gast)


Lesenswert?

Klaus Wachtler schrieb:
> ok, daß es ODBC auch unter Windows vernünftig gibt, wusste ich nicht.

hä? Linux hat doch erst später mit ODBC nachgezogen. Windows hat das 
ganze seit  Win95.

von MaWin (Gast)


Lesenswert?

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).

von Klaus W. (mfgkw)


Lesenswert?

Peter schrieb:
> Klaus Wachtler schrieb:
>> ok, daß es ODBC auch unter Windows vernünftig gibt, wusste ich nicht.
>
> hä? Linux hat doch erst später mit ODBC nachgezogen. Windows hat das
> ganze seit  Win95.

sorry, ich meinte eigentlich:
... daß es ODBC auch unter Linux vernünftig gibt, wusste ich nicht.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.