Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi MySQL mit ADO? Wie? (https://www.delphipraxis.net/24506-mysql-mit-ado-wie.html)

Stevie 22. Jun 2004 10:54


MySQL mit ADO? Wie?
 
Hi Leute,

ich entwickle gerade mein eigenes Framework für MDI-Anwendungen, zu denen auch ein Datenbankzugriff gehört. Da dieses Framework (realitiv) datenbankunabhängig sein soll (zumindest MSAccess, Oracle, MSSQL, MySQL), habe ich vor, die ADO-Komponenten zu benutzen. Access, Oracle und MSSQL funktionieren ja, aber wie kann ich auf eine MySQL-Datenbank zugreifen? Ich muss doch wahrscheinlich irgendwelche ODBC-Treiber installieren oder wie funktioniert das?

Stevie 22. Jun 2004 11:08

Re: MySQL mit ADO? Wie?
 
Ok, sorry, war'n Schnellschuss! :oops: Einfach MyODBC runterladen installieren, konfigurieren und loslegen. :stupid:

Aber ich hätte in diesem Zusammenhang noch eine andere Frage. Was muss ich beachten, wenn ich die ganze Sache DB-unabhängig machen will. Gibt es einen SQL-Standard, der von den oben genannten Datenbanken auf jeden Fall unterstützt wird?

Bernhard Geyer 22. Jun 2004 12:35

Re: MySQL mit ADO? Wie?
 
Ganz "neutral" ist sowas nicht möglich, da zwar alle Datenbanken den SQL-Standard unterstützen, jedoch im Detail immer unterschiede vorhanden sind.

Schau mal in die Diskussion 3-Schichtenmodell

Auch würde ich für den Zugriff auf MySQL native-Komponenten wie die MySQL-DAC-Komponenten nehmen. Haben folgenden Vorteil:

- XCopy-Installation (Maximal libmysql.dll paralell zur Anwendung nötig), Minimaler Konfigurationsaufwand
- Keine ADO-Installation nötig
- Keine ODBC-Installation (Treiber, Version) nötig

Stevie 22. Jun 2004 12:58

Re: MySQL mit ADO? Wie?
 
Ok, mal abgesehen, von den zusätzlichen Installationen, funktioniert nicht auf allen von mir genannten DBs SQL92?
Btw. wo gibt es eine komplette Liste, was SQL92 unterstützt? (Ja, ich hab schon Google benutzt! :stupid:)

Bernhard Geyer 22. Jun 2004 13:18

Re: MySQL mit ADO? Wie?
 
Zitat:

Zitat von Stevie
Ok, mal abgesehen, von den zusätzlichen Installationen, funktioniert nicht auf allen von mir genannten DBs SQL92?

Die unterschiede liegen im Detail. Z.B. ist das CREATE TABLE-Statement bei jeder DB (trotz Standard) unterschiedlich
Zitat:

Zitat von Stevie
Btw. wo gibt es eine komplette Liste, was SQL92 unterstützt??

Ich hatte mal (alte Firma) ein Buch über den SQL(92)-Standard sowie den Vergleich zwischen den unterschiedlichen relevanten DB's (mit unterstützen Schlüsselwörtern). Das gibt es jedoch nicht mehr. Such mal bei Amazon ob es evtl. vergleichbare Bücher gibt.

Phoenix 23. Jun 2004 15:35

Re: MySQL mit ADO? Wie?
 
Zitat:

Zitat von Stevie
funktioniert nicht auf allen von mir genannten DBs SQL92?

Es gibt _keine_ einzige Datenbank, die SQL92 zu 100% unterstützt.
Manche halten sich zwar an den Standard der Syntax, implementieren aber einige Funktionen nicht so wie festgelegt, andere sind gar nicht erst vorhanden.

Die, die noch am nächsten dran sind sind die OpenSource - DB's mySQL und Postgres, da hier keine Firma dahinter eigenen Standards durchsetzen will. MS und Oracle hätten halt gerne, das eine Applikation die mit ihrer DB läuft am liebsten gar nicht mit anderen zusammenarbeitet.

Von daher wirst Du wohl nicht umhin kommen, den kleinsten gemeinsamen Nenner selber austesten zu müssen, wenn deine Anwendung wirklich möglichst viele Datenbanken unterstützen soll.

Oder Du investiert ein, zwei Jahre und codes eine generische Statement-Generierung, die das jeweilig gewünschte Statement für die jeweilig gerade aktive Datenbank optimietr zur Laufzeit generiert. Aber das ist richtig heftig.

Stevie 24. Jun 2004 07:42

Re: MySQL mit ADO? Wie?
 
Naja, sowas muss ja nicht gerade sein, weil meine Software eigentlich "nur" Daten aus der Datenbank verabreiten soll. Daher fallen so Sachen, wie z.B. CREATE TABLE usw weg. Sowas muss man dann DB-abhängig machen. Innerhalb meiner Software wird es eigentlich nur DML-Statements geben und die dürften ja bis auf bestimmte Funktionen - wie gesagt - gleich sein.


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:53 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz