Archiv verlassen und diese Seite im Standarddesign anzeigen : Mit C oder C++ generell auf SQL-Datenbanken zugreifen
schoppenhauer
06-03-2007, 13:53
Hallo.
Gleich vorweg: Ich hab das hier (http://www.mrunix.de/forums/showthread.php?t=33262) gelesen. Ist ja auch alles OK. Aber... Hm... Also was mich stört ist, dass man sich da anscheinend auf eine bestimmte SQL-Datenbank festlegen muss. Also MySQL, PostgreSQL, wasauchimmerSQL.
Ich dachte immer, die Schnittstelle wäre bei allen SQL-Datenbanken zumindest weitestgehend standardisiert... Ich will im Grunde nur absolute Grundfunktionalität, für meine Zwecke würde Berkeley DB sogar reichen... Also im Grunde nur zweispaltige Tabellen (wenn ich mehr kriege, benutz ich wohl auch mehr, aber im Grunde reichen zwei Spalten)...
Jedenfalls... Ich möchte mit C++ möglichst alle SQL-Datenbankensysteme ansteuern können, möglichst, ohne irgendwelche Anpassungen am Code vorher machen zu müssen. Ist das möglich - soll heißen: Ist der Zugriff soweit standardisiert, dass man mit dem selben Programm ohne veränderungen sich Einloggen, Daten abfragen, etc., kann?
Waxolunist
06-03-2007, 15:07
Ich möchte mich nicht wiederholen, weshalb ich auf diesen Thread hier einfach mal verweise:
http://www.mrunix.de/forums/showthread.php?t=48209
Kurz: Es gibt ODBC, JDBC-Pakete, die standardisiert die Connection regeln. Die Abfrage ist jeweils anders. Einfache SQL-Befehle unterscheiden sich aber kaum voneinander. Jedoch schon to_date unterscheidet sich bei den meisten DBMS voneinander.
mfg, Christian
schoppenhauer
06-03-2007, 17:33
Mist. Dumme sich-nicht-an-den-standard-halter...
Naja, dann kann ich gleich Berkeley DB nehmen... Bevor ich das Prog unflexibel mache... Setze ich lieber ein paar mehr Dateizugriffsrechte voraus.
Das schöne an Standards ist, dass man so viele davon haben kann ;-)
fs111
schoppenhauer
11-03-2007, 20:35
Das schöne an Standards ist, dass man so viele davon haben kann ;-)Naja... Vor Allem, wenn sie sich nicht wirklich unterscheiden in ihrer funktionalität. Mein Vorschlag: SQL-Datenbanken mit nem IRC-Server verbinden, in den man die Requests direkt eingeben kann... Passwörter mit PRIVMSG NickServ :identify **** :p . Das wäre doch mal was... Da könnte man sogar manuell drauf zugreifen.
Aber im Ernst... Im Grunde verstehe ich nicht, wieso man die Netzwerkschnittstelle nicht so standardisiert hat, dass man die SQL-Befehle einfach sendet... Und ein wenigstens minimales Set an Datentypen vollständig festlegt und so. Das heißt ja nicht, dass es nicht Erweiterungen und Features gibt (die ja dazu beitragen, dass Standards erweitert und verbessert werden), aber wenigstens ein minimum an Funktionalität sollte doch standardisiert sein.
Im Grunde: Wozu führt es denn, dass Leute Standards proprietär weiterentwickeln und nicht davon absehen, wenn sich ein anderes System durchgesetzt hat: Es führt zu abstraktions-layern, die overhead erzeugen. (sorry, musste ich jetzt einfach mal sagen)
Waxolunist
12-03-2007, 10:31
Nun, SQL-92 (http://www.contrib.andrew.cmu.edu/~shadow/sql/sql1992.txt) ist schon standardisiert, womit du ein Minimumset hast. Aber was fängt man mit einem 15-Jahre alten Standard schon an?
Inzwischen hat sich SQL in jedem DBMS so weiter entwickelt, dass das nicht mehr alles unter einen Hut zu bringen ist, weshalb ich nicht glaube, dass SQL2003 jemals wirklich Relevanz haben wird.
mfg, Christian
Turbohummel
15-03-2007, 18:02
Es gibt auch SQL 99 und SQL 03. SQL 03 wird noch nciht von allen DBs unterstützt, SQL 99 schon.
Wir testen immer wieder mit verschiedenen Datenbanken, unsere Anwendungen laufen sowohl mit MaxDB, Mysql als auch MS SQLServer und DB2.
schoppenhauer
15-03-2007, 18:08
Hm. Was ich eigentlich meinte, war, wie man sich auf die Netzwerkschnittstelle einloggt und so... Also z.B. MySQL kann man ja theoretisch sogar nur per Netzwerksockets ansteuern. Und PostgreSQL auch und so... Aber... Naja... Wie der Login stattfindet und so weiter... Das ist mW nicht standardisiert, aber ich kann mich auch täuschen.
Waxolunist
16-03-2007, 08:01
Das erledigt der JDBC/ODBC-Treiber für dich. Darum musst du dich nicht kümmern.
Per Netzwerksocket sollte es immer gehen. Wirn leben schließlich in einer Welt der verteilten Anwendungen.
mfg, Christian
Powered by vBulletin® Version 4.2.5 Copyright ©2025 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.