[gelöst] DB_Connection Member not found

Für Themen zu Datenbanken und Zugriff auf diese. Auch für Datenbankkomponenten.
Benutzeravatar
kralle
Lazarusforum e. V.
Beiträge: 994
Registriert: Mi 17. Mär 2010, 14:50
OS, Lazarus, FPC: Linux Mint 20 , FPC 3.3.1 , Lazarus 2.1.0 -Win10 & XE7Pro
CPU-Target: 64Bit
Wohnort: Bremerhaven
Kontaktdaten:

[gelöst] DB_Connection Member not found

Beitrag von kralle »

Moin,

ich versuche immer noch mittels Lazarus (unter Linux Mint) auf einen Datenbank die in MariaDB (gestartet als Teil des LAMPP) zuzugreifen.

Ich bekomme aber immer einen Verbindungsfehler zum Server.

Ich habe mir jetzt eine Werte der DB_Connection (TMySQL80Connect) in die Überwachten Ausdrücke gelegt.
Was auffällt ist

Code: Alles auswählen

DB_Connection.Port  Member not found:Port
.

Es ist egal, ob ich eine Portnummer direkt in den Eigenschaften des Objektinspektors übergebe oder im Button.Click.

Ein

Code: Alles auswählen

netstat -nlp
liefert

Code: Alles auswählen

$ sudo netstat -nlp
[sudo] Passwort für lazman:        
Aktive Internetverbindungen (Nur Server)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      964/cupsd           
tcp        0      0 127.0.0.53:53           0.0.0.0:*               LISTEN      811/systemd-resolve 
tcp6       0      0 :::3306                 :::*                    LISTEN      20800/mysqld        
tcp6       0      0 :::80                   :::*                    LISTEN      20885/httpd         
tcp6       0      0 :::21                   :::*                    LISTEN      20926/proftpd: (acc 
tcp6       0      0 :::443                  :::*                    LISTEN      20885/httpd         
tcp6       0      0 ::1:631                 :::*                    LISTEN      964/cupsd           
udp        0      0 127.0.0.53:53           0.0.0.0:*                           811/systemd-resolve 
udp        0      0 0.0.0.0:631             0.0.0.0:*                           1261/cups-browsed   
udp        0      0 0.0.0.0:5353            0.0.0.0:*                           828/avahi-daemon: r 
udp        0      0 0.0.0.0:38867           0.0.0.0:*                           828/avahi-daemon: r 
udp6       0      0 fe80::8cdf:4351:8ce:546 :::*                                833/NetworkManager  
udp6       0      0 :::5353                 :::*                                828/avahi-daemon: r 
udp6       0      0 :::40582                :::*                                828/avahi-daemon: r 
raw6       0      0 :::58                   :::*                    7           833/NetworkManager  
Aktive Sockets in der UNIX-Domäne (Nur Server)
Proto RefCnt Flags       Type       State         I-Node   PID/Program name     Pfad
unix  2      [ ACC ]     STREAM     HÖRT         27219    1014/Xorg            /tmp/.X11-unix/X0
unix  2      [ ACC ]     STREAM     HÖRT         29070    1293/cinnamon-sessi  /tmp/.ICE-unix/1293
unix  2      [ ACC ]     STREAM     HÖRT         29069    1293/cinnamon-sessi  @/tmp/.ICE-unix/1293
unix  2      [ ACC ]     STREAM     HÖRT         27218    1014/Xorg            @/tmp/.X11-unix/X0
unix  2      [ ACC ]     STREAM     HÖRT         27551    1277/systemd         /run/user/1000/systemd/private
unix  2      [ ACC ]     STREAM     HÖRT         27557    1277/systemd         /run/user/1000/bus
unix  2      [ ACC ]     STREAM     HÖRT         31704    2216/gnome-keyring-  /root/.cache/keyring-IZR961/control
unix  2      [ ACC ]     STREAM     HÖRT         27559    1277/systemd         /run/user/1000/gnupg/S.dirmngr
unix  2      [ ACC ]     STREAM     HÖRT         27561    1277/systemd         /run/user/1000/gnupg/S.gpg-agent.browser
unix  2      [ ACC ]     STREAM     HÖRT         27563    1277/systemd         /run/user/1000/gnupg/S.gpg-agent.extra
unix  2      [ ACC ]     STREAM     HÖRT         27565    1277/systemd         /run/user/1000/gnupg/S.gpg-agent.ssh
unix  2      [ ACC ]     STREAM     HÖRT         27567    1277/systemd         /run/user/1000/gnupg/S.gpg-agent
unix  2      [ ACC ]     STREAM     HÖRT         27569    1277/systemd         /run/user/1000/pipewire-0
unix  2      [ ACC ]     STREAM     HÖRT         27571    1277/systemd         /run/user/1000/pk-debconf-socket
unix  2      [ ACC ]     STREAM     HÖRT         20561    1/init               /run/systemd/private
unix  2      [ ACC ]     STREAM     HÖRT         27573    1277/systemd         /run/user/1000/pulse/native
unix  2      [ ACC ]     STREAM     HÖRT         20563    1/init               /run/systemd/userdb/io.systemd.DynamicUser
unix  2      [ ACC ]     STREAM     HÖRT         20564    1/init               /run/systemd/io.system.ManagedOOM
unix  2      [ ACC ]     STREAM     HÖRT         28996    1289/gnome-keyring-  /run/user/1000/keyring/control
unix  2      [ ACC ]     STREAM     HÖRT         20573    1/init               /run/lvm/lvmpolld.socket
unix  2      [ ACC ]     SEQPAKET   HÖRT         20577    1/init               /run/systemd/coredump
unix  2      [ ACC ]     STREAM     HÖRT         20579    1/init               /run/systemd/fsck.progress
unix  2      [ ACC ]     STREAM     HÖRT         20590    1/init               /run/systemd/journal/stdout
unix  2      [ ACC ]     SEQPAKET   HÖRT         20592    1/init               /run/udev/control
unix  2      [ ACC ]     STREAM     HÖRT         80247    20800/mysqld         /opt/lampp/var/mysql/mysql.sock
unix  2      [ ACC ]     STREAM     HÖRT         29724    1522/dbus-daemon     /run/user/1000/at-spi/bus_0
unix  2      [ ACC ]     STREAM     HÖRT         29075    1289/gnome-keyring-  /run/user/1000/keyring/ssh
unix  2      [ ACC ]     STREAM     HÖRT         29079    1289/gnome-keyring-  /run/user/1000/keyring/pkcs11
unix  2      [ ACC ]     STREAM     HÖRT         82238    20888/httpd          /opt/lampp/logs/cgisock.20885
unix  2      [ ACC ]     STREAM     HÖRT         18970    369/systemd-journal  /run/systemd/journal/io.systemd.journal
unix  2      [ ACC ]     STREAM     HÖRT         31674    2172/dbus-daemon     @/tmp/dbus-kDHj51RsBV
unix  2      [ ACC ]     STREAM     HÖRT         26982    1/init               /run/acpid.socket
unix  2      [ ACC ]     STREAM     HÖRT         26984    1/init               /run/avahi-daemon/socket
unix  2      [ ACC ]     STREAM     HÖRT         26986    1/init               /run/cups/cups.sock
unix  2      [ ACC ]     STREAM     HÖRT         26988    1/init               /run/dbus/system_bus_socket
unix  2      [ ACC ]     STREAM     HÖRT         26990    1/init               /run/uuidd/request
unix  2      [ ACC ]     STREAM     HÖRT         25790    811/systemd-resolve  /run/systemd/resolve/io.systemd.Resolve
unix  2      [ ACC ]     STREAM     HÖRT         27073    839/irqbalance       /run/irqbalance/irqbalance839.sock

Demnach lauscht MySql auf 3306.

Was hat das mit der "not Found"-Meldung auf sich?

Gruß Heiko
Zuletzt geändert von kralle am Mo 3. Jul 2023, 21:25, insgesamt 1-mal geändert.
OS: Manjaro Linux, Debian und Windows 10
FPC-Version: 3.2.2 , Lazarus 3.0
+ Delphi XE7SP1

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6216
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: DB_Connection Member not found

Beitrag von af0815 »

Die Meldung sagt nur aus, das dein Debugger nicht auf Membervariablen zugreifen kann.

Mehr dazu wenn du dich in fpDebug bzw. gdb (fast schon veraltet auf manchen Plattformen) einliest. AUch im englichen Forum gibt es sehr viel Information, auch was laufend beim fpDebug dazukommt. Salop formuliert auch setter und getter können derzeit nicht angezeigt werden. Da gibt es auch die Diskussion darüber, das beim Abfragen eines setters oder getters ja interne Zustände verändert oder ausgelöst werden können und damit würde ein zu beobachtendes System verändert werden. Ist eine komplexe Materie.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Eb
Lazarusforum e. V.
Beiträge: 238
Registriert: Di 5. Feb 2008, 15:32
OS, Lazarus, FPC: Linux Mint - Laz 2.2.0
CPU-Target: 64Bit
Wohnort: Stuttgart

Re: DB_Connection Member not found

Beitrag von Eb »

Welchen Verbindungsfehler bekommst du denn?

charlytango
Beiträge: 845
Registriert: Sa 12. Sep 2015, 12:10
OS, Lazarus, FPC: Laz stable (2.2.6, 3.x)
CPU-Target: Win 32/64, Linux64
Wohnort: Wien

Re: DB_Connection Member not found

Beitrag von charlytango »

Bei Verbindungsfehlern zur DB versuche ich zuerst einmal mit einem (grafischen) Client auf die DB zuzugreifen von dem ich weiß dass er funktioniert.

irgend ein freies Programm in dieser Art:
https://www.tecmint.com/mysql-gui-tools-for-linux/
https://blog.forestadmin.com/top-5-mari ... s-in-2021/

Braucht nix aufwerndiges zu sein, es geht ja nur darum einen Connect herzustellen.
Wenn das klappt weiß du dass es grundsätzlich klappt und vielleicht auch welche Zugriffsbibliothek verwendet wird.
Die würde ich zu Testzwecken auch mal in Lazarus ausprobieren.
kralle hat geschrieben:
So 25. Jun 2023, 20:39
ich versuche immer noch mittels Lazarus (unter Linux Mint) auf einen Datenbank die in MariaDB (gestartet als Teil des LAMPP) zuzugreifen.

Ich bekomme aber immer einen Verbindungsfehler zum Server.
Das wundert mich gar nicht, denn obwohl MariaDB jedenfalls viel verbreiteter als Firebird zu finden ist (seitdem MySQL von Oracle übernommen wurde) wird die DB in Lazarus stiefmütterlich behandelt.

Lies dir meinen Post dazu mal durch.
viewtopic.php?p=133116#p133116

Vielleicht kannst du mit SkipLibraryVersionCheck die Versionsprüfung abschalten, die dir in die Suppe spucken könnte

Benutzeravatar
kralle
Lazarusforum e. V.
Beiträge: 994
Registriert: Mi 17. Mär 2010, 14:50
OS, Lazarus, FPC: Linux Mint 20 , FPC 3.3.1 , Lazarus 2.1.0 -Win10 & XE7Pro
CPU-Target: 64Bit
Wohnort: Bremerhaven
Kontaktdaten:

Re: DB_Connection Member not found

Beitrag von kralle »

Moin,
Eb hat geschrieben:
Mo 26. Jun 2023, 21:51
Welchen Verbindungsfehler bekommst du denn?
Lazarus:
DB_Connection : Server connect failed
Ich finde auch keinen Weg, den Apache davon zu überzeugen, auskunftsfreudiger zu werden

Gruß Heiko
OS: Manjaro Linux, Debian und Windows 10
FPC-Version: 3.2.2 , Lazarus 3.0
+ Delphi XE7SP1

Benutzeravatar
kralle
Lazarusforum e. V.
Beiträge: 994
Registriert: Mi 17. Mär 2010, 14:50
OS, Lazarus, FPC: Linux Mint 20 , FPC 3.3.1 , Lazarus 2.1.0 -Win10 & XE7Pro
CPU-Target: 64Bit
Wohnort: Bremerhaven
Kontaktdaten:

Re: DB_Connection Member not found

Beitrag von kralle »

Moin,
charlytango hat geschrieben:
Mo 26. Jun 2023, 22:03
Bei Verbindungsfehlern zur DB versuche ich zuerst einmal mit einem (grafischen) Client auf die DB zuzugreifen von dem ich weiß dass er funktioniert.
Also in XAMPP selber kann ich phpmyadmin aufrufen und kann auf die Datenbank zugreifen.
Selbst In LibreOffice Base, kann ich die Datenbank ohne Probleme einrichten und drauf zugreifen.

Den Rest Deines Beitrages arbeitet ich die Tage ab und installiere die Tools.

Gruß Heiko
OS: Manjaro Linux, Debian und Windows 10
FPC-Version: 3.2.2 , Lazarus 3.0
+ Delphi XE7SP1

Benutzeravatar
kralle
Lazarusforum e. V.
Beiträge: 994
Registriert: Mi 17. Mär 2010, 14:50
OS, Lazarus, FPC: Linux Mint 20 , FPC 3.3.1 , Lazarus 2.1.0 -Win10 & XE7Pro
CPU-Target: 64Bit
Wohnort: Bremerhaven
Kontaktdaten:

Re: DB_Connection Member not found

Beitrag von kralle »

Moin,
charlytango hat geschrieben:
Mo 26. Jun 2023, 22:03
Vielleicht kannst du mit SkipLibraryVersionCheck die Versionsprüfung abschalten, die dir in die Suppe spucken könnte
Den Tipp hatte ich auch schon gefunden, brachte aber auch nicht.
Soweit, das das relevant ist, scheine ich gar nicht zu kommen.
Die Verbindung zum Server funktioniert ja nicht.

Gruß Heiko
OS: Manjaro Linux, Debian und Windows 10
FPC-Version: 3.2.2 , Lazarus 3.0
+ Delphi XE7SP1

charlytango
Beiträge: 845
Registriert: Sa 12. Sep 2015, 12:10
OS, Lazarus, FPC: Laz stable (2.2.6, 3.x)
CPU-Target: Win 32/64, Linux64
Wohnort: Wien

Re: DB_Connection Member not found

Beitrag von charlytango »

kralle hat geschrieben:
Mo 26. Jun 2023, 22:31
Selbst In LibreOffice Base, kann ich die Datenbank ohne Probleme einrichten und drauf zugreifen.
Dann hast du wohl kein Problem mit der Datenbank sondern nur mit Lazarus.
Nicht ganz unwichtig ist es zu wissen welche Version von MariaDB du hast. Ich verwende Option 2 aus dem Link.

Klar kenne ich die Argumente dagegen, doch im Moment benutze ich produktiv nach wie vor ZEOS Komponenten. Ein Versuch wärs wohl wert. Und sei es nur dazu das Problem einzugrenzen.

Benutzeravatar
kralle
Lazarusforum e. V.
Beiträge: 994
Registriert: Mi 17. Mär 2010, 14:50
OS, Lazarus, FPC: Linux Mint 20 , FPC 3.3.1 , Lazarus 2.1.0 -Win10 & XE7Pro
CPU-Target: 64Bit
Wohnort: Bremerhaven
Kontaktdaten:

Re: DB_Connection Member not found

Beitrag von kralle »

Moin,
charlytango hat geschrieben:
Mo 26. Jun 2023, 22:55
Dann hast du wohl kein Problem mit der Datenbank sondern nur mit Lazarus.
Nicht ganz unwichtig ist es zu wissen welche Version von MariaDB du hast.
Server-Version 10.4.28-MariaDB
Protokoll: 10
charlytango hat geschrieben:
Mo 26. Jun 2023, 22:55
Ich verwende Option 2 aus dem Link.
Ich habe in phpMyAdmin nachgeschaut 8)

Gruß Heiko

P.S. „Heute ist nicht alle Tage; ich komm wieder, keine Frage“ - Gute Nacht
OS: Manjaro Linux, Debian und Windows 10
FPC-Version: 3.2.2 , Lazarus 3.0
+ Delphi XE7SP1

Eb
Lazarusforum e. V.
Beiträge: 238
Registriert: Di 5. Feb 2008, 15:32
OS, Lazarus, FPC: Linux Mint - Laz 2.2.0
CPU-Target: 64Bit
Wohnort: Stuttgart

Re: DB_Connection Member not found

Beitrag von Eb »

Ich sehe das genauso wie charlytango
charlytango hat geschrieben:
Mo 26. Jun 2023, 22:03
Bei Verbindungsfehlern zur DB versuche ich zuerst einmal mit einem (grafischen) Client auf die DB zuzugreifen von dem ich weiß dass er funktioniert.
Ich würde auf dem PC auf dem das Lazarusprogramm läuft, mysql-workbench installieren und damit eine Verbindung zur Datenbank herstellen.

Benutzeravatar
kralle
Lazarusforum e. V.
Beiträge: 994
Registriert: Mi 17. Mär 2010, 14:50
OS, Lazarus, FPC: Linux Mint 20 , FPC 3.3.1 , Lazarus 2.1.0 -Win10 & XE7Pro
CPU-Target: 64Bit
Wohnort: Bremerhaven
Kontaktdaten:

Re: DB_Connection Member not found

Beitrag von kralle »

Moin,
so ich habe "DBeaver 23.1.1" installiert "mysql-workbench" habe ich unter "Linux Mint 21.1 Cinnamon 64-Bit" nichtinstalliert bekommen.

Mit "DBeaver" konnte ich problemlos auf die Datenbank zugreifen.

Und nun?

Ich habe versucht die "TMySQL80Connection" zu debuggen, aber bei einem Verbindungsversuch scheint die Unit nicht angesprungen zu werden.

Code: Alles auswählen

    DB_Connection.Connected:= true;
    DB_Connection.Open;   
Hier wird die Fehlermeldung geschmissen.

Gruß Heiko
OS: Manjaro Linux, Debian und Windows 10
FPC-Version: 3.2.2 , Lazarus 3.0
+ Delphi XE7SP1

Joh
Lazarusforum e. V.
Beiträge: 191
Registriert: Sa 26. Mai 2012, 17:31
OS, Lazarus, FPC: Win 10 (L 2.2.6 x64 FPC 3.2.2)
CPU-Target: 64Bit

Re: DB_Connection Member not found

Beitrag von Joh »

Zeig doch mal ein paar mehr Zeilen...

- du hast eine MySQL80Connection und eine TSQLTransaction auf dem Formular?!

- du übergibst die Werte

Code: Alles auswählen

    MySQL80Connection.HostName := ...
    MySQL80Connection.DatabaseName := ...
    MySQL80Connection.UserName :=...
    MySQL80Connection.Password := ...
    MySQL80Connection.Port := 3306;  // wenn 3306, muß das nicht gesetzt werden!
und setzt die Database auf Connected?

Code: Alles auswählen

    MySQL80Connection.Connected := true;
oder was machst du?
just my two Beer

Joh
Lazarusforum e. V.
Beiträge: 191
Registriert: Sa 26. Mai 2012, 17:31
OS, Lazarus, FPC: Win 10 (L 2.2.6 x64 FPC 3.2.2)
CPU-Target: 64Bit

Re: DB_Connection Member not found

Beitrag von Joh »

Ähem,
ich sehe gerade:

Code: Alles auswählen

DB_Connection.Connected := true;
DB_Connection.Open;
Das ist doch doppelt gemoppelt...

eventuell sowas:

Code: Alles auswählen

DB_Connection.Connected := true;
MySQLQuery.SQL := 'SELECT ...';
MySQLQuery.Open;
just my two Beer

Benutzeravatar
kralle
Lazarusforum e. V.
Beiträge: 994
Registriert: Mi 17. Mär 2010, 14:50
OS, Lazarus, FPC: Linux Mint 20 , FPC 3.3.1 , Lazarus 2.1.0 -Win10 & XE7Pro
CPU-Target: 64Bit
Wohnort: Bremerhaven
Kontaktdaten:

Re: DB_Connection Member not found

Beitrag von kralle »

Moin,

hier mal der wahnsinnige Quellcode:

Code: Alles auswählen

unit Unit2;

{$mode objfpc}{$H+}

interface

uses
    Classes, SysUtils, Forms, Controls, Graphics, Dialogs, StdCtrls,
    {Datenbank}
    DBCtrls, DBGrids,
    DB, SQLDB, odbcconn, MSSQLConn, IBConnection, mysql80conn ;

type

  { TForm2 }

  TForm2 = class(TForm)
    Button1: TButton;
    DataSource1: TDataSource;
    DBGrid1: TDBGrid;
    DBNavigator1: TDBNavigator;
    DB_Connection: TMySQL80Connection;
    SQLQuery1: TSQLQuery;
    SQLTransaction1: TSQLTransaction;
    procedure Button1Click(Sender: TObject);
  private

  public

  end;

var
  Form2: TForm2;

implementation

{$R *.lfm}

{ TForm2 }

procedure TForm2.Button1Click(Sender: TObject);
begin
{ Verbindungsdaten}
DB_Connection.CharSet:= 'UTF-8';
DB_Connection.DatabaseName:= 'usr_web46_9';
DB_Connection.HostName:= 'localhost';
DB_Connection.Password:= '';
{DB_Connection.Port:= 3306;}
DB_Connection.UserName:= 'root';
DB_Connection.SkipLibraryVersionCheck:=true;
{ Verbindung zur Datenbank falls vorhanden erst einmal schließen}
{if DB_Connection.Connected then DB_Connection.Close;
 }

{Verbindung zu Datenbank aufbauen}
{Try
}
    DB_Connection.Connected:= true; // Hier ist Schluss
    DB_Connection.Open;    // Wenn die Zeile darüber nicht vorhanden, dann ist hier Schluss
  showmessage ('Verbindung zum Server aufgebaut.');
   {Komponenten aktivieren}
   SQLTransaction1.Active:= true;
   { Zu beutzende Tabelle auswählen}
    SQLQuery1.SQL.Text := 'SELECT * FROM jos311_jdownloads_files_backup_3_2_69';
    SQLQuery1.Active:= true;
    {Query öffnen}
   SQLQuery1.Open;
 { except
   { Im Fehlerfall ausführen}
 {  showmessage ('Verbindung zum Server konnte nicht aufgebaut werden.');
   close;  // Nur damit ich wieder in der IDE lande.
  } end;
   end;}
end;

end.



Gruß Heiko
OS: Manjaro Linux, Debian und Windows 10
FPC-Version: 3.2.2 , Lazarus 3.0
+ Delphi XE7SP1

shokwave
Beiträge: 471
Registriert: Do 15. Nov 2007, 16:58
OS, Lazarus, FPC: Win11/Ubuntu Budgie (L 3.0 FPC 3.2.2)
CPU-Target: i386, x64
Wohnort: Gera

Re: DB_Connection Member not found

Beitrag von shokwave »

Unter Windows bekomme ich, zu einer MariaDB(V10.4.27 von XAMPP), mit meiner Demo, problemlos eine Verbindung, obwohl die mysql.dll, die ich habe, eine Version 5.irgendwas ist.

Mir ist bei deinem Code nur aufgefallen, dass du ziemlich viele Connectionunits einbindest. Vielleicht musst du da mal aufräumen. Ansonsten wüsste ich nicht was bei dir anders ist, außer dem Betriebssystem.

Hier noch meine Demo.

Code: Alles auswählen

unit Unit1;

{$mode objfpc}{$H+}

interface

uses
  Classes, SysUtils, mysql80conn, SQLDB, Forms, Controls, Graphics, Dialogs,
  StdCtrls, ExtCtrls;

type

  { TForm_Main }

  TForm_Main = class(TForm)
    Btn_Start: TButton;
    Memo: TMemo;
    Panel1: TPanel;
    procedure Btn_StartClick(Sender: TObject);
  private
    procedure RunMariaDBDemo;
    procedure SetConnectionParameter(Connection: TMySQL80Connection);
    procedure makeQueryAndShowResult(var Query: TSQLQuery);
  public
  end;

var
  Form_Main: TForm_Main;

implementation

{$R *.lfm}

{ TForm_Main }

procedure TForm_Main.Btn_StartClick(Sender: TObject);
begin
  Memo.Clear;
  RunMariaDBDemo;
end;

procedure TForm_Main.RunMariaDBDemo;
var
  Transaction: TSQLTransaction;
  Query: TSQLQuery;
  Connection: TMySQL80Connection;
begin
  //Einrichtung Connection
  Connection:= TMySQL80Connection.Create(nil);
  SetConnectionParameter(Connection);

  //Einrichtung Transaction
  Transaction:= TSQLTransaction.Create(nil);
  Transaction.DataBase:= Connection;

  //Einrichtung Query
  Query:= TSQLQuery.Create(nil);
  Query.DataBase:= Connection;
  Query.Transaction:= Transaction;

  try
    //Connection öffnen und eine Query starten
    Connection.Open;
    makeQueryAndShowResult(Query);
  finally
    //Aufräumen
    Query.Close;
    Connection.Close;

    Transaction.Free;
    Query.Free;
    Connection.Free;
  end;
end;

procedure TForm_Main.SetConnectionParameter(Connection: TMySQL80Connection);
begin
  Connection.HostName:= 'localhost';
  Connection.Port:= 3306;
  Connection.DatabaseName:= 'test';
  Connection.UserName:= 'root';
  Connection.Password:= '';
  Connection.SkipLibraryVersionCheck:= true;
end;

procedure TForm_Main.makeQueryAndShowResult(var Query: TSQLQuery);
begin
  Query.SQL.Text:= 'SELECT vorname, nachname, geburtsdatum FROM personen ORDER BY geburtsdatum;';
  Query.Open;
  Query.First;
  while (not Query.EOF) do
  begin
    Memo.Lines.Add('Meine Name ist ' +
                     Query.FieldByName('vorname').AsAnsiString +
                     ' ' +
                     Query.FieldByName('nachname').AsAnsiString +
                     ' und ich habe am ' +
                     Query.FieldByName('geburtsdatum').AsAnsiString +
                     ' Geburtstag.');
    Query.Next;
  end;
end;

end.
mfg Ingo

Antworten