Hallo,
Ich bin gerade dabei mit Zeos und ado zu experimentieren. Ich wollte über ado und der DSN Datenquellen vom Betriebssystem auf Datenbanken zugreifen. Ich habe schon viel gegoogelt, aber irgendwie bekomme ich es nicht hin eine Datenbankverbindung auf zu bauen.
Angefangen habe ich mal mit einer MySQL ODBC Verbindung. Da mein Programm bereits direkt mit MySQL zusammen arbeitet bin ich mir sicher dass die SQL Befehle schon mal OK sind.
* Als erstes habe ich die Zeos Komponente 7.2.1-rc in Lazarus 1.6.4 installiert.
* Danach von MySQL den Connector/ODBC V5.3.8 (https://dev.mysql.com/downloads/connector/odbc/)
Zeos konfiguriere ich über die INI-Datei in meinem Programm, bei der ich die Parameter einstellen kann, so sieht das aus wenn ich direkt mich mit dem Server verbinde, das klappt soweit. Die INI Parameter werden zu TZConnection übergeben:
[DB]
Protocol=mysql-5
HostName=192.168.1.11
Port=3306
Database=elela_test
User=mm
Password=****
LibraryLocation=
So weit ich verstanden habe braucht es nur den Parameter "Protocol" und "Database", bei der ado Verbindung habe ich das eingestellt:
[DB]
Protocol=ado
;Database=ODBC;DSN=elela_odbc;DRIVER=;DBQ=.;UID=mm;PWD=****;DOMAIN=;RemoteHost=;RedundantCPU=N;RedundantLAN=N
;Database=ODBC;DSN=elela_odbc;DRIVER=;DBQ=.;SERVER=192.168.81.11;UID=mm;PWD=****;DATABASE=elela_test;
;Database=ODBC;Driver="MySQL ODBC 5.3 ANSI Driver";DSN=elela_odbc;Server=192.168.81.11;Database=elela_test;Uid=mm;Pwd=****;User=mm;Password=****;
;Database=Driver={MySQL ODBC 5.3 Driver};DSN=elela_odbc;Server=192.168.81.11;Database=elela_test;Uid=mm;Pwd=****;User=mm;Password=****;option=3;
Database=DSN=elela_odbc;DRIVER=MySQL ODBC 5.3 Driver;SERVER=192.168.81.11;USER=mm;PASSWORD=****;
HostName=
Port=
User=
Password=
LibraryLocation=
Ich habe schon alles mögliche an Verbindungs Parametern eingestellt, aber ich finde einfach nicht heraus was denn nun als Connection String man da eingeben muss. Ich habe schon beide Variateionen "ANSI" und "UNICODE" probiert, beides geht nicht.
Weiß jemand was ich da schreiben muss?
Als nächstes möchte ich auch die Verbindung mit ado und zu anderen Datenbanken testen, MsSQL, Postgresql. Falls jemand dafür den Connection String schon weiß, bitte mal hier posten.
Dankeschön, Grüße Markus.
Zeos + ADO und der "Connection String"
-
- Beiträge: 1581
- Registriert: Fr 10. Okt 2008, 23:54
- OS, Lazarus, FPC: Winuxarm (L 4 FPC 3.2.2)
- CPU-Target: 32/64Bit
Zeos + ADO und der "Connection String"
EleLa - Elektronik Lagerverwaltung - www.elela.de
- af0815
- Lazarusforum e. V.
- Beiträge: 6767
- Registriert: So 7. Jan 2007, 10:20
- OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
- CPU-Target: 32Bit (64Bit)
- Wohnort: Burgenland
- Kontaktdaten:
Re: Zeos + ADO und der "Connection String"
Grundlegend nur den Trunk aus dem SVN von Zeos für Verbindungen mit ADO zu nehmen.
Ev. auf Github mal https://github.com/afriess/schnell/tree/wip_af ansehen. Im Metadata habe ich da etwas experimentiert.
Andreas
Code: Alles auswählen
Provider=Microsoft.ACE.OLEDB.12.0;Data Source=x:\Pascal\xxx\ZEOSAccess\DB\test_1.mdb;Persist Security Info=False
Andreas
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
-
- Beiträge: 1581
- Registriert: Fr 10. Okt 2008, 23:54
- OS, Lazarus, FPC: Winuxarm (L 4 FPC 3.2.2)
- CPU-Target: 32/64Bit
Re: Zeos + ADO und der "Connection String"
Wenn ich das so eingebe:
Provider=MySQL ODBC 5.3 Driver;Data Source=elela_odbc
kommt "Der Provider kann nicht gefunden werden. Möglicherweise ist er nicht richtig installiert worden."
Provider=MySQL ODBC 5.3 Driver;Data Source=elela_odbc
kommt "Der Provider kann nicht gefunden werden. Möglicherweise ist er nicht richtig installiert worden."
EleLa - Elektronik Lagerverwaltung - www.elela.de
-
- Beiträge: 31
- Registriert: So 14. Aug 2011, 09:11
Re: Zeos + ADO und der "Connection String"
So sah mein ConnectionString für ODBC aus
{MySQL ODBC 5.3 Driver};Server=ServerName;Port=3306;Database=Dein_DbName;User=Dein_DbUser;Password=Dein_Password;OPTION=4194307
Allerdings greife ich lieber direkt (libMySql.dll) per Zeos-MySql zu (da m.E. schneller).
{MySQL ODBC 5.3 Driver};Server=ServerName;Port=3306;Database=Dein_DbName;User=Dein_DbUser;Password=Dein_Password;OPTION=4194307
Allerdings greife ich lieber direkt (libMySql.dll) per Zeos-MySql zu (da m.E. schneller).
- af0815
- Lazarusforum e. V.
- Beiträge: 6767
- Registriert: So 7. Jan 2007, 10:20
- OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
- CPU-Target: 32Bit (64Bit)
- Wohnort: Burgenland
- Kontaktdaten:
Re: Zeos + ADO und der "Connection String"
Kanst du mit der ODBC Datenquellenverwaltung einen Datei oder SystemDSN erstellen der funktioniert ?
Andreas
Andreas
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
-
- Beiträge: 1581
- Registriert: Fr 10. Okt 2008, 23:54
- OS, Lazarus, FPC: Winuxarm (L 4 FPC 3.2.2)
- CPU-Target: 32/64Bit
Re: Zeos + ADO und der "Connection String"
Dankeschön!
Ich denke ich bin ein schönes Stück weiter gekommen.
Ich habe ein 64 Bit Windows und den 64 Bit MySQL Connector installiert und meine EXE mit 32 Bit Lazarus übersetzt. Ergebnis Fehlermeldung:
[Microsoft][ODBC Driver Manager] Der angegebene DSN weist eine nicht übereinstimmende Architektur von Treiber und Anwendung auf.
Diese DSN funktioniert auch:
DRIVER={MySQL ODBC 5.3 Unicode Driver};SERVER=192.168.81.11;PORT=3306;USER=mm;PASSWORD=****;DATABASE=elela_test;option=4194307
Mit 64 Bit Lazarus übersetzt funktioniert die EXE, so lange Daten gelesen werden
Ein neuer Datensatz und Post zeigt noch ein Fehler:
[MySQL][ODBC 5.3(w) Driver][mysqld-5.5.54-MariaDB]You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '[bauteil] (tree_typ_ID,Foto_ID,Bezeichnung,Beschreibung,Handbuch,Library,Kennz,I' at line 1
Da suche ich morgen weiter.
Ich denke ich bin ein schönes Stück weiter gekommen.
Code: Alles auswählen
TZConnection.Catalog := ''; // << muss leer sein, sonst geht es nicht!
TZConnection.Protocol := 'ado';
TZConnection.Database := 'DSN=elela_test'; // Und diese DSN Verbindung ist in der Systemsteuerung angelegt
[Microsoft][ODBC Driver Manager] Der angegebene DSN weist eine nicht übereinstimmende Architektur von Treiber und Anwendung auf.
Diese DSN funktioniert auch:
DRIVER={MySQL ODBC 5.3 Unicode Driver};SERVER=192.168.81.11;PORT=3306;USER=mm;PASSWORD=****;DATABASE=elela_test;option=4194307
Mit 64 Bit Lazarus übersetzt funktioniert die EXE, so lange Daten gelesen werden

Ein neuer Datensatz und Post zeigt noch ein Fehler:
[MySQL][ODBC 5.3(w) Driver][mysqld-5.5.54-MariaDB]You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '[bauteil] (tree_typ_ID,Foto_ID,Bezeichnung,Beschreibung,Handbuch,Library,Kennz,I' at line 1
Da suche ich morgen weiter.
EleLa - Elektronik Lagerverwaltung - www.elela.de