On 08.12.05 23:10:13, Joerg Rossdeutscher wrote: > Am Donnerstag, den 08.12.2005, 18:48 +0100 schrieb Uwe Kerstan: > Vielleicht kann mir mal jemand eine Grundsatzfrage beantworten: > > Mein Eindruck war, dass ODBC so eine Art "Zwischen-Layer" ist zwischen > - einer allgemeinen, SQL-ähnlichen Abfragesprache > - und den verschiedenen Datenbanken mit ihren "nativen" Sprachen
Nee, nicht wirklich. SQL ist ein Standard den eigentlich alle "wichtigen" Relationalen DB implementieren - manche fast vollstaendig, manche nur Teile (z.B. MySQL). SQL ist eine Abfragesprache (eigentlich _die_ Abfragesprache bei relationalen DB) mit der du Daten aus der Datenbank bekommst. ODBC dagegen ist M$'s Variante eines "Datenbankadapters", er soll die unterschiedlichen Schnittstellen zur Konnektierung, Auswahl der Datenbank und Ausfuehrung einer SQL-Abfrage "kapseln". Auf diese Weise hast du immer diesselben Funktionen zur Verbindungsherstellung und Anfrageausfuehrung, egal welches Datenbanksystem dann wirklich angebunden ist. Bei Java nennt sich das ganze JDBC, fuer Python gibts auch eine DB-Schnittstelle. Bei anderen Sprachen wie C/C++ oder PHP gibts AFAIK keine ueberall vorhandene einheitliche DB-API. Hier musst du dich dann jeweils mit den Schnittstellen der einzelnen Datenbanktreiber auseinandersetzen. > Wenn ich auf meinem Filemaker-Server einen ODBC-Treiber installiert > habe, den Filemaker unterstützt, dann macht der doch eigentlich die > "Übersetzung" von ODBC-SQL-Abfragen nach Filemaker? Nee, eigentlich sollte der nur dafuer sorgen dass du mit Hilfe einer ODBC-Verbindung SQL-Anfragen an den Filemaker-Server schicken kannst. > Wenn dem so ist: Wieso muss ich dem Client(!) denn jetzt noch sagen, > dass dahinter eine Filemaker/MySQL/Postgres/Whatever-Datenbank ist? Ich > dachte, der Client fragt dann per "ODBC-SQL" den Server, und der > übersetzt das nach Filemaker und liefert das Resultat zurück? Ich kenne ODBC nicht im Detail, aber du musst beim eroeffnen der Verbindung wahrscheinlich sagen, welchen Treiber ODBC benutzen soll um die Verbindung herzustellen und wo der Server lauscht. So jedenfalls laeufts bei Java. > Das scheint aber ja nicht so zu sein. Anscheinend muss man dem Client ja > sagen: Du redest per ODBC mit einer Filemaker-Datenbank. Wieso denn dann > überhaupt ODBC? Wo ist der Gewinn? Du musst halt nicht schauen ob die Funktion zur Verbindungseroeffnung nun "fm_connect", "connect_fm", "open_db" oder sonstwie heisst und du ebenso musst du die Parameter des Filemaker-Treibers nicht kennne. Dasselbe gilt fuer das Ausfuehren einer Anfrage, ich kenne von keinem Datenbanktreiber den Namen der Funktion um eine SQL-Anfrage auszufuehren. Das ganze ist natuerlich nur dann wirklich wertvoll wenn man das Datenbanksystem wechselt oder oft mit verschiedenen Datenbanken arbeitet. Wenn du eh immer nur FileMaker nutzt kannst du dir natuerlich auch dessen API einpraegen und nutzen. Andreas -- Today is the first day of the rest of your life. -- Haeufig gestellte Fragen und Antworten (FAQ): http://www.de.debian.org/debian-user-german-FAQ/ Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED] mit dem Subject "unsubscribe". Probleme? Mail an [EMAIL PROTECTED] (engl)

