Hallo!
Mal eine kurze Frage, die ich mir nicht so richtig beantworten kann: Ist ODBC einfach nur ein standardisiertes Interface oder bietet ODBC auch Standard-SQLs? Also könnte ich das gleiche SQL für unterschiedlichste ODBC-Datenbanken verwenden?
Wenn nicht: Dann würde doch die ganze Sache wieder keinen Sinn machen, da ich ja dann doch alles wieder individuell programmieren muss? Leider ist ja von keiner Datenbank die SQL-Syntax auch nur annähernd identisch 😦
Mir geht es hier ganz speziell um ODBC. Das es mit C#3.0 ganz andere tolle Möglichkeiten gibt weiß ich 🙂
Vielen Dank schon mal und Grüße
obdc ist ja nur der weg wie du zur db verbindest um z.B einen befehl an die db zu schicken, dieser befehl muss natürlich der syntax und dem dialekt der jeweiligen db entsprechen. du brauchs ja schließlich auch für jede db einen unterschiedliche odbc treiber.
"Programming is similar to sex. If you make a mistake, you have to support it for the rest of your life."
... und auch wenn es (noch) von vielen System unterstützt wird: Finger weg von ODBC. Es ist eine wirklich alte Schnittstelle die schon vor Jahren abgelöst wurde. Irgendwann fällt die Unterstützung raus.
🙂
Xynratron
Herr, schmeiss Hirn vom Himmel - Autsch!
Die Erfahrung zeigt immer wieder, dass viele Probleme sich in Luft auslösen, wenn man sich den nötigen Abstand bzw. Schlaf gönnt.
Hallo Trance,
in welcher Datenbank willst Du denn Deine Daten speichern ?
bzw. welche Daten hast Du ?
Grüße Bernd
Workshop : Datenbanken mit ADO.NET
Xamarin Mobile App : Finderwille Einsatz App
Unternehmenssoftware : Quasar-3
Ich möchte dem Nutzer die Wahl lassen aus verschiedenen Datenbanken seine Daten auslesen zu lassen. Und einzig ODBC bietet doch die Möglichkeit dass der Nutzer selbst seinen Treiber auswählen kann, oder?
Oder gibt es auch an dieser Front mitleerweile moderne Technologien?
Ich möchte am Ende einfach nur einen Dialog haben der dem Nutzer die freie Wahl einer DB lässt und wo er zur Not dann noch ein paar Basis-SQLs eintippen muss, um die entsprechenden Daten zu bekommen.
Grüße
Hallo Trance,
ODBC ist veraltet, langsam und unflexibel.
So zu programmieren dass deine Applikation mit mehreren Datenbanken läuft ist recht anspruchsvoll, das Stichwort dazu ist "DBFactory".
Siehe http://www.seven-c.de/files/DatenbankenHowto.htm
Kapitel 10 und 11
Grüße Bernd
Workshop : Datenbanken mit ADO.NET
Xamarin Mobile App : Finderwille Einsatz App
Unternehmenssoftware : Quasar-3
Oder ORMapper wie NHibernate, XPO, Retina und Co benutzen.
Danke für die Stichworte!
Wie schaut es denn mit der Verfügbarkeit von ADO.NET Treibern aus? Viele unserer Kunden haben noch prähistorische Datenbanken von denen sie migrieren wollen.
Habe auf der Schiene dann mal weiter geforscht: Microsoft bietet ja auch einen ODBC.NET Treiber an der anscheinend die Brücke schlagen soll. Das wäre für meine Anwendungsfälle wahrscheinlich optimal: Durch die Factory kann ich Zugriff auf die modernen ADO.NET Treiber bieten aber gleichzeitig auch durch verwenden des ODBC.NET Treibers die ganz alten Datenbanken erschlagen!?
Sehe ich das so richtig?
Für prähistorische Datenbanken könntest Du einen ODBC-Treiber anbieten.
Die SQL-Kommandos sind dennoch für jede Datenbank anders, zumindestens wenn es über 'select * from' hinausgeht.
Die Installation der ODBC-Treiber beim Kunden ist auf jeden Fall auch kompliziert. Wenn die schiefgeht ist viel Frimmelei angesagt.
Die optimale Vorgehensweise hängt sehr (wie bei allem im Leben) von Deinen Andorderungen ab.
Meine Software läuft inzwischen mit MS SQL, MS SQL Compact, MySQL, Oracle und PostgreSQL. Die Verfügbarkeit von ADO.NET Treibern musst Du für jede Datenbank einzeln prüfen, am besten beim Hersteller der Datenbank.
Grüße Bernd
Workshop : Datenbanken mit ADO.NET
Xamarin Mobile App : Finderwille Einsatz App
Unternehmenssoftware : Quasar-3
... ein schneller Überblick über die Verfügbarkeit von NET-Providern ist zu finden über ConnectionStrings. Jürgen