Discussion:
mySQL
(zu alt für eine Antwort)
Martin Schade
2018-01-11 18:46:36 UTC
Permalink
Sagt mal,

wie sind derzeit die Aussichten von Delphi 7 aus auf 10.1.16-MariaDB aus
dem XAMPP-Paket zuzugreifen?

Grüße, Martin Schade
Matthias Hanft
2018-01-11 21:46:04 UTC
Permalink
Post by Martin Schade
wie sind derzeit die Aussichten von Delphi 7 aus auf 10.1.16-MariaDB aus
dem XAMPP-Paket zuzugreifen?
Wenn die Maria so einigermaßen MySQL-5.6.38-kompatibel ist, geht das mit
der "Mysql-direct"-Library (naja, es sind einfach ein paar Units mit
Funktionen, die man aufrufen kann). Die ist zwar von 2005 (Version 1.2.2),
geht aber prima mit Delphi 7 und dem aktuellen MySQL, wenn man den Range
Check in der Unit "uMysqlVio.pas" global abschaltet (sonst gibts undebugg-
bare Run Time Errors).

Weiß nicht mehr, wo ich die damals runtergeladen habe, aber nach dem
Namen kannst du ja mal googeln.

Gruß Matthias.
Martin Schade
2018-01-16 10:34:04 UTC
Permalink
Post by Matthias Hanft
Post by Martin Schade
wie sind derzeit die Aussichten von Delphi 7 aus auf 10.1.16-MariaDB aus
dem XAMPP-Paket zuzugreifen?
Wenn die Maria so einigermaßen MySQL-5.6.38-kompatibel ist, geht das mit
der "Mysql-direct"-Library (naja, es sind einfach ein paar Units mit
Funktionen, die man aufrufen kann). Die ist zwar von 2005 (Version 1.2.2),
geht aber prima mit Delphi 7 und dem aktuellen MySQL, wenn man den Range
Check in der Unit "uMysqlVio.pas" global abschaltet (sonst gibts undebugg-
bare Run Time Errors).
Weiß nicht mehr, wo ich die damals runtergeladen habe, aber nach dem
Namen kannst du ja mal googeln.
Ich habe mich dazu auf dem Entwickler-Forum umgesehen - die Beiträge dazu
sind schon einige Jahre her und die angegebenen Web-Siten meist von anderen
übernommen.
Aktiv sind noch
http://www.productivity.org/projects/tmysql/
http://zeoslib.sourceforge.net/
https://www.delphi-treff.de/tutorials/datenbanken/mysql-direct/
https://www.thoughtco.com/top-dephi-components-to-access-mysql-1058174

Allerdings sind die Pakete auch schon einige Jahre alt, und ob das im
heutigen Umfeld läuft, ist fraglich.

Von der mySQL-Doku habe ich den Eindruck, daß mit der DB über TCP/IP oder
über einen Memory-Stream kommuniziert wird. Allerdings, wenn es keinen
direkten Aufruf von DB-Funktionen wie bei DCOM gibt, sollte es eigentlich
egal sein, was sich in der DB ändert. So gesehen kann auch eine etliche
Jahre alte Schnittstelle noch passen.

Grüße, Martin Schade
Matthias Eißing
2018-01-16 10:51:34 UTC
Permalink
Am 16.01.18 um 11:34 schrieb Martin Schade:

[u.a. ZeosLib]
Post by Martin Schade
Allerdings sind die Pakete auch schon einige Jahre alt, und ob das im
heutigen Umfeld läuft, ist fraglich.
Geht sogar mit dem aktuellen 10.2 Tokyo:
http://cbuilder.wikidot.com/blog:2

(Hier: Dei Starter Edition :-))
--
cu://Matthias.Eißing.de
Martin Schade
2018-01-18 16:27:26 UTC
Permalink
Post by Matthias Eißing
[u.a. ZeosLib]
Post by Martin Schade
Allerdings sind die Pakete auch schon einige Jahre alt, und ob das im
heutigen Umfeld läuft, ist fraglich.
http://cbuilder.wikidot.com/blog:2
(Hier: Dei Starter Edition :-))
Und wie sieht es mit der dbExpress-Komponente aus - die soll doch auch mySQL
können?

Grüße, Martin Schade
Matthias Hanft
2018-01-18 16:49:06 UTC
Permalink
Post by Martin Schade
Und wie sieht es mit der dbExpress-Komponente aus - die soll doch auch mySQL
können?
Hab ich IIRC vor gefühlten hundert Jahren mal probiert, aber nicht
zum Laufen bekommen. Weiß aber nicht mehr, warum nicht, und will
das jetzt auch nicht mehr aufrollen - ich bin mit "mysql-direct"
glücklich und zufrieden :-) (geht mit D7 auch noch auf Windows 10
und MySQL 5.6, und man muss keine Komponenten und auch sonst nix
zusätzlich installieren).

Gruß Matthias.
Matthias Eißing
2018-01-19 14:56:08 UTC
Permalink
Post by Martin Schade
Und wie sieht es mit der dbExpress-Komponente aus - die soll doch auch
mySQL können?
Wenn dbExpress in der Delphi Edition dabei ist (Starter, Pro,
Enterprise), dann geht das auch mit MySQL. Zu beachten ist, daß man eine
ganz spezifische LibMySQL.DLL braucht:
http://wiltonsoftware.com/posts/view/getting-embarcadero-dbexpress-mysql-working-dbx-error-driver-not-initialized
--
cu://Matthias.Eißing.de
Martin Schade
2018-01-22 19:33:18 UTC
Permalink
Post by Martin Schade
Und wie sieht es mit der dbExpress-Komponente aus - die soll doch auch
mySQL können?
Wenn dbExpress in der Delphi Edition dabei ist (Starter, Pro, Enterprise),
dann geht das auch mit MySQL. Zu beachten ist, daß man eine ganz
http://wiltonsoftware.com/posts/view/getting-embarcadero-dbexpress-mysql-working-dbx-error-driver->
not-initialized
Ich habe das nun soweit ~, daß die SQLConnection ohne Fehlermeldung die
mySQL-DB anruft; die daran gehängte Komponente kann aber nicht auf Active
gesetzt werden. Daher habe ich mit SetTraceCallbackEvent den SQL-Befehl
abgefangen, und da kommt nur
MySQL - mysql_init
MySQL - mysql_real_connect
Nun müßten doch der Benutzername und die gewünschte Datenbank übergeben
werden, aber weitere Aufrufe kommen nicht.

Grüße, Martin Schade
Matthias Eißing
2018-01-23 08:02:42 UTC
Permalink
Post by Martin Schade
Ich habe das nun soweit ~, daß die SQLConnection ohne Fehlermeldung die
mySQL-DB anruft; die daran gehängte Komponente kann aber nicht auf
Active gesetzt werden. Daher habe ich mit SetTraceCallbackEvent den
SQL-Befehl abgefangen, und da kommt nur
   MySQL - mysql_init
   MySQL - mysql_real_connect
Nun müßten doch der Benutzername und die gewünschte Datenbank übergeben
werden, aber weitere Aufrufe kommen nicht.
Lokales MySQL?
Delphi Pro oder Enterprise?

Remote Datenbanken gehen bei dbExpress nur mit der Enterprise Edition.
--
cu://Matthias.Eißing.de
Matthias Hanft
2018-01-23 08:42:20 UTC
Permalink
Post by Matthias Eißing
Remote Datenbanken gehen bei dbExpress nur mit der Enterprise Edition.
Ah, ich glaube, *das* war der Grund, warum ich dbExpress bei meinem
D7 *professional* schließlich nicht weiterverfolgt habe :-)

Gruß Matthias.
Martin Schade
2018-01-24 09:41:56 UTC
Permalink
Post by Matthias Eißing
Post by Martin Schade
Ich habe das nun soweit ~, daß die SQLConnection ohne Fehlermeldung die
mySQL-DB anruft; die daran gehängte Komponente kann aber nicht auf
Active gesetzt werden. Daher habe ich mit SetTraceCallbackEvent den
SQL-Befehl abgefangen, und da kommt nur
MySQL - mysql_init
MySQL - mysql_real_connect
Nun müßten doch der Benutzername und die gewünschte Datenbank übergeben
werden, aber weitere Aufrufe kommen nicht.
Lokales MySQL?
Delphi Pro oder Enterprise?
Remote Datenbanken gehen bei dbExpress nur mit der Enterprise Edition.
MySQL läuft lokal
Delphi ist Version 7 Professional.

Den TSQLMonitor habe ich nicht gefunden.
Bei TSQLCallbackEvent kommt nur der Text und das selbst belegte mittlere
Feld an, die Art und Länge nicht.

Grüße, Martin Schade
Matthias Eißing
2018-01-24 15:34:22 UTC
Permalink
Post by Martin Schade
MySQL läuft lokal
Delphi ist Version 7 Professional.
Jetzt habe ich hier kein Delphi 7 mehr installiert.... :-/
--
cu://Matthias.Eißing.de
Martin Schade
2018-01-24 20:06:53 UTC
Permalink
Post by Matthias Eißing
Post by Martin Schade
MySQL läuft lokal
Delphi ist Version 7 Professional.
Jetzt habe ich hier kein Delphi 7 mehr installiert.... :-/
ja, und funktioniert dbExpress von den neueren Versionen?

Ich habe mir erstmal das Beispiel
http://michael-puff.de/Programmierung/Delphi/Tutorials/MySQL_mit_Delphi_Demos.zip
angesehen; es ließ sich schnell auf meine DaBa umstellen (es läuft). Das ist
alles recht einfach und ohne Datenbank-Komponenten, so daß es schnell zu
durchschauen ist.

Grüße, Martin Schade
Matthias Eißing
2018-01-25 05:45:39 UTC
Permalink
Post by Martin Schade
Post by Matthias Eißing
Post by Martin Schade
MySQL läuft lokal
Delphi ist Version 7 Professional.
Jetzt habe ich hier kein Delphi 7 mehr installiert.... :-/
ja, und funktioniert dbExpress von den neueren Versionen?
Generell: Ja
Wobei man dafür heute eher FireDAC benutzt....
--
cu://Matthias.Eiß***@iOS
Martin Schade
2018-01-26 10:26:48 UTC
Permalink
Post by Matthias Eißing
Post by Martin Schade
Post by Matthias Eißing
Post by Martin Schade
MySQL läuft lokal
Delphi ist Version 7 Professional.
Jetzt habe ich hier kein Delphi 7 mehr installiert.... :-/
ja, und funktioniert dbExpress von den neueren Versionen?
Generell: Ja
Wobei man dafür heute eher FireDAC benutzt....
Inzwischen habe ich mir von
https://mariadb.com/downloads/mariadb-tx/connector
einen ODBC-Treiber geholt, scheint zu funktionieren.

Grüße, Martin Schade
Martin Schade
2018-03-13 11:14:12 UTC
Permalink
"Martin Schade" schrieb im Newsbeitrag news:p4evpc$20h$***@tota-refugium.de...

***
Post by Martin Schade
Post by Martin Schade
MySQL läuft lokal
Delphi ist Version 7 Professional.
***
Post by Martin Schade
Inzwischen habe ich mir von
https://mariadb.com/downloads/mariadb-tx/connector
einen ODBC-Treiber geholt, scheint zu funktionieren.
Das mit MySQL über ODBC und BDE funktioniert recht gut.

Schwierigkeiten gibt's mit dem Setzen von SQL-Parametern - d.h., wenn ich
die SQL-Abfrage im Programm zusammensetze und dann SQL.Text zuweise,
funktioniert es.
Wenn aber die SQL-Abfrage zur Entwurfszeit eingesetzt wird und einen
Parameter enthält, und dieser Parameter dann mit ParamByName.As~~~
zugewiesen wird, funktioniert es nur, wenn dieser Parameter ein Integer ist.
Wenn der Parameter ein String ist, dann kommt die Meldung "Operation nicht
anwendbar". Ich habe das sowohl mit dem "nackten" String als auch mit dem
String in " und ' probiert. Bei Integern sind ~ keine " erforderlich.
Ich habe dann eine Exception-Behandlung eingesetzt, um den Fehlercode zu
bekommen. Dieser ist 2a04; im File "C:\Program Files
(x86)\Borland\Delphi7\Demos\Db\DbErrors\DM1.pas" steht, daß eine
vollständige Liste der BDE-Fehlercodes in den Files DBIERRS.INT und IDAPI.h
zu finden sei.
Das IDAPI.h hab ich nicht gefunden; das DBIERRS.INT immerhin bei Delphi1.
Dort steht aber auch nur
2A -> ERRCAT_INVALIDCONTEXT
04 -> ERRCODE_NA = 4; { Operation not
applicable }

Warum hab' ich nicht weiter rausfinden können.

Grüße, Martin Schade

Lesen Sie weiter auf narkive:
Loading...