Laden...

Bietet ODBC standardisierte SQLs?

Erstellt von inTrance vor 15 Jahren Letzter Beitrag vor 15 Jahren 1.558 Views
inTrance Themenstarter:in
170 Beiträge seit 2005
vor 15 Jahren
Bietet ODBC standardisierte SQLs?

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

D
496 Beiträge seit 2005
vor 15 Jahren

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."

X
1.177 Beiträge seit 2006
vor 15 Jahren

... 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.

3.825 Beiträge seit 2006
vor 15 Jahren

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

inTrance Themenstarter:in
170 Beiträge seit 2005
vor 15 Jahren

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

3.825 Beiträge seit 2006
vor 15 Jahren

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

F
10.010 Beiträge seit 2004
vor 15 Jahren

Oder ORMapper wie NHibernate, XPO, Retina und Co benutzen.

inTrance Themenstarter:in
170 Beiträge seit 2005
vor 15 Jahren

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?

3.825 Beiträge seit 2006
vor 15 Jahren

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

J
3.331 Beiträge seit 2006
vor 15 Jahren

... ein schneller Überblick über die Verfügbarkeit von NET-Providern ist zu finden über ConnectionStrings. Jürgen