mikrocontroller.net

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


Autor: Martin (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Guest (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Klaus Wachtler (mfgkw)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ok, dann spare ich mir eine pampige Antwort :-)

Autor: ... (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Johannes G. (johannesg00)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das hier ist vielleicht hilfreicher: ;)
http://openbook.galileocomputing.de/c_von_a_bis_z/...

Autor: Jürgen W. (lovos)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Klaus Wachtler (mfgkw)
Datum:

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

Autor: Peter (Gast)
Datum:

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

Autor: faustian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Warum ist die libmysqlclient denn unbrauchbar?

Autor: Klaus Wachtler (mfgkw)
Datum:

Bewertung
0 lesenswert
nicht 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).

Autor: Andreas Ferber (aferber)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Klaus Wachtler (mfgkw)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich sprach ja auch nur vom Konzept (inzwischen auch
gelegentlich Konzeot genannt).

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Klaus Wachtler (mfgkw)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: MaWin (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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).

Autor: Klaus Wachtler (mfgkw)
Datum:

Bewertung
0 lesenswert
nicht 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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.