MySQL API in C - eine komfortable Möglichkeit, MySQL-Daten in C zu verwenden

Heute schon (ab)gefragt?

Tobias Wassermann

Derjenige, der damals die Bezeichnung Paradox für die gleichnamige Datenbank ersann, war ziemlich gewitzt – denn Datenbanken sind schlicht paradox. Es scheint wie folgt: Je besser die Datenbank, desto komplizierter ist der Zugriff. Doch das wollen wir ändern.

Sicher, es gibt Schlimmeres, als die Zugriffe auf eine Datenbank. Besonders MySQL in Verbindung mit der MySQL C API gestaltet sich noch sehr human. Allerdings gibt es auch Erfreulicheres. Damit das deutlich wird, verinnerlichen wir uns doch einmal, was alles für einen Datenbankzugriff notwendig ist (zum Beispiel eine Abfrage mit Rückgabe – also ein SELECT): Da wäre der Verbindungsaufbau, das Senden der Abfrage an den Server, das Lesen des Ergebnisses und anschließend das Schließen der Verbindung. Das war jetzt freilich noch die triviale Version – denn das Lesen des Ergebnisses strotz beispielsweise nur vor einzelnen Arbeitsschritten, etwa der Ermittlung, ob überhaupt ein Ergebnis zurückgeliefert wurde, wie viele Spalten und Reihen das Ergebnis umfasst, das Lesen mittels mysql_fetch_row und mysql_fetch_field. Ein kleines Beispiel soll das ganze vom Codeaufwand her zeigen:

sprintf(buf, SELECT %s.%s, %s.%s, %s.%s, sum(%s.%s) FROM %s INNER JOIN %s ON %s.%s=%s.%s INNER JOIN %s on %s.%s=%s.%s WHERE %s.%s=%u GROUP BY %s.%s, Tbl_Bestellung, Col_Bestellung_Nr, Tbl_Bestellposten, Col_Bestellposten_ArtNr, Tbl_Bestellposten, Col_Bestellposten_Bezeichnung, Tbl_Lieferung, Col_Lieferung_Anzahl, Tbl_Bestellung, Tbl_Bestellposten, Tbl_Bestellung, Col_Bestellung_Nr, Tbl_Bestellposten, Col_Bestellposten_BestellungNr, Tbl_Lieferung, Tbl_Bestellposten, Col_Bestellposten_ArtNr, Tbl_Lieferung, Col_Lieferung_ArtNr, Tbl_Bestellposten, Col_Bestellposten_ArtNr, ArtikelNummer, Tbl_Bestellposten, Col_Bestellposten_ArtNr); 
Geschrieben von
Tobias Wassermann
Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.