Verbindung zu MySQL DB zu verschieden Tabellen
-
- Beiträge: 37
- Registriert: So 31. Mai 2020, 21:13
Verbindung zu MySQL DB zu verschieden Tabellen
Hallo,
ich habe zwei Forms erstellt, die auf zwei unterschiedliche Tabellen einer DB zugreifen sollen.
Bei der ersten Form, funktioniert der Zugriff auf Tabelle 1. Aber leider funktioniert von Form 2 der Zugriff auf Tabelle 2 nicht, obwohl ich das meiste mit copy&paste gemacht habe.
Selbst wenn von Form 2 auf Tabelle 1 zugreifen will, erfolgt keine Ausgabe.
Ich hab folgendes Tutorial als Vorlage genommen:
https://www.youtube.com/watch?v=tVF09VT3LbE
ich habe eine Form, die connect heist mit folgendem gekürzten Inhalt:
TForm3 = class(TForm)
MySQL57Connection1: TMySQL57Connection;
SQLQuery1: TSQLQuery;
SQLTransaction1: TSQLTransaction;
private
public
procedure connectDB;
procedure closeDB;
end;
procedure TForm3.connectDB;
begin
MySQL57Connection1.Hostname :='localhost';
MySQL57Connection1.UserName :='root';
MySQL57Connection1.Password :='benutzer';
MySQL57Connection1.DatabaseName :='test';
MySQL57Connection1.Transaction := SQLTransaction1;
MySQL57Connection1.Connected := true;
SQLQuery1.Database := MySQL57Connection1;
end;
procedure TForm3.closeDB;
begin
SQLQuery1.Close;
SQLQuery1.ExecSQL;
SQLTransaction1.Commit;
end;
Form 2 sieht wie folgt aus
uses
Classes, SysUtils, Forms, Controls, Graphics, Dialogs, StdCtrls, ComCtrls, connect;
...
Selbst wenn ich eine vierte Form bastel mit dem Inhalt wie Form 3, kann bekomme ich kein Ergebnis.
Könnt ihr mir bitte weiterhelfen?? Ich bin recht neu im Thema..
Danke & Grüße
ich habe zwei Forms erstellt, die auf zwei unterschiedliche Tabellen einer DB zugreifen sollen.
Bei der ersten Form, funktioniert der Zugriff auf Tabelle 1. Aber leider funktioniert von Form 2 der Zugriff auf Tabelle 2 nicht, obwohl ich das meiste mit copy&paste gemacht habe.
Selbst wenn von Form 2 auf Tabelle 1 zugreifen will, erfolgt keine Ausgabe.
Ich hab folgendes Tutorial als Vorlage genommen:
https://www.youtube.com/watch?v=tVF09VT3LbE
ich habe eine Form, die connect heist mit folgendem gekürzten Inhalt:
TForm3 = class(TForm)
MySQL57Connection1: TMySQL57Connection;
SQLQuery1: TSQLQuery;
SQLTransaction1: TSQLTransaction;
private
public
procedure connectDB;
procedure closeDB;
end;
procedure TForm3.connectDB;
begin
MySQL57Connection1.Hostname :='localhost';
MySQL57Connection1.UserName :='root';
MySQL57Connection1.Password :='benutzer';
MySQL57Connection1.DatabaseName :='test';
MySQL57Connection1.Transaction := SQLTransaction1;
MySQL57Connection1.Connected := true;
SQLQuery1.Database := MySQL57Connection1;
end;
procedure TForm3.closeDB;
begin
SQLQuery1.Close;
SQLQuery1.ExecSQL;
SQLTransaction1.Commit;
end;
Form 2 sieht wie folgt aus
uses
Classes, SysUtils, Forms, Controls, Graphics, Dialogs, StdCtrls, ComCtrls, connect;
...
Selbst wenn ich eine vierte Form bastel mit dem Inhalt wie Form 3, kann bekomme ich kein Ergebnis.
Könnt ihr mir bitte weiterhelfen?? Ich bin recht neu im Thema..
Danke & Grüße
Zuletzt geändert von Daniel_Berlin am Do 4. Jun 2020, 16:56, insgesamt 1-mal geändert.
- af0815
- Lazarusforum e. V.
- Beiträge: 6771
- 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: Verbindung zu MySQL DB zu verschieden Tabellen
Auch wenn ich so wie ein Oberlehrer klinge - > Schon mal in der Wiki von Lazarus und FPC nach einem Tutorial geschaut ? Die gibt es nämlich dort.
Findet man auch mit Google.
Ein ExecSql ist in deinem Beispiel komplett fehl am Platz, wenn du schon richtigerweise Open verwendest.
Zu dem Thema habe ich erst vor ein paar Tagen hier im Forum gepostet.
viewtopic.php?f=17&t=12951
Findet man auch mit Google.
Ein ExecSql ist in deinem Beispiel komplett fehl am Platz, wenn du schon richtigerweise Open verwendest.
Zu dem Thema habe ich erst vor ein paar Tagen hier im Forum gepostet.
viewtopic.php?f=17&t=12951
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
-
- Beiträge: 37
- Registriert: So 31. Mai 2020, 21:13
Re: Verbindung zu MySQL DB zu verschieden Tabellen
Vielen Dank für die schnelle Antwort. Aber bist du dir sicher, dass dein Link die richtige Thema ist?
Ich hab den Befehl: SQLQuery1.ExecSQL;
jetzt gelöscht.
Ich verstehe nur nicht, warum ich mit dem relativ gleichem Code in einer anderen Form auf eine Tabelle zugreifen kann, aber in einer anderen Form funktioniert das nicht.
Auf der wiki Seite hab ich auch schon geschaut, aber leider war da auch nicht viel mehr als in dem youtube clip.
Ich hab den Befehl: SQLQuery1.ExecSQL;
jetzt gelöscht.
Ich verstehe nur nicht, warum ich mit dem relativ gleichem Code in einer anderen Form auf eine Tabelle zugreifen kann, aber in einer anderen Form funktioniert das nicht.
Auf der wiki Seite hab ich auch schon geschaut, aber leider war da auch nicht viel mehr als in dem youtube clip.
- af0815
- Lazarusforum e. V.
- Beiträge: 6771
- 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: Verbindung zu MySQL DB zu verschieden Tabellen
Wie wäre es, wenn du die Sourcen (keine libs, keine ppu, keine exe,...) und die DB mal zippst und hier im Forum hochlädst.
Die Tutorialserie kenne ich, die schaut zwar nett aus, hinterlässt aber IMHO ein Projekt mit etlichen Fehlern. doch einiges an Exceptions die beim Ablauf immer wieder erscheinen, wenn man dann die Eingaben nicht genauso macht wie im Tutorial. Nur Abschreiben ist zuwenig, man muss bei diesen Tutorial verstanden haben um was es geht und warum er manche Sachen so macht, dann hat ein Chance das das Projekt funktioniert.
Es ist kein Tutorial für Anfänger, auch wenn der Anfang so aussieht. Man kann sich aber bei Ersteller des Tutorial gerne Unterstützung kaufen, so zumindest habe ich das auf seiner Homepage so verstanden
Die Tutorialserie kenne ich, die schaut zwar nett aus, hinterlässt aber IMHO ein Projekt mit etlichen Fehlern. doch einiges an Exceptions die beim Ablauf immer wieder erscheinen, wenn man dann die Eingaben nicht genauso macht wie im Tutorial. Nur Abschreiben ist zuwenig, man muss bei diesen Tutorial verstanden haben um was es geht und warum er manche Sachen so macht, dann hat ein Chance das das Projekt funktioniert.
Es ist kein Tutorial für Anfänger, auch wenn der Anfang so aussieht. Man kann sich aber bei Ersteller des Tutorial gerne Unterstützung kaufen, so zumindest habe ich das auf seiner Homepage so verstanden

Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
-
- Beiträge: 37
- Registriert: So 31. Mai 2020, 21:13
Re: Verbindung zu MySQL DB zu verschieden Tabellen
Die entsprechenden Datein habe ich begefügt. Wenn etwas fehlt, dann bitte nochmal schreiben.
Die Tabellen verkauforders und kauforders der DB test haben nur 1 oder 2 Datensätze zum testen.
Die Tabellen verkauforders und kauforders der DB test haben nur 1 oder 2 Datensätze zum testen.
Zuletzt geändert von Daniel_Berlin am Do 4. Jun 2020, 16:55, insgesamt 1-mal geändert.
- af0815
- Lazarusforum e. V.
- Beiträge: 6771
- 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: Verbindung zu MySQL DB zu verschieden Tabellen
Da fehlen die Orderbuch.lpi und die ganzen lfm dateien (Visuellen Komponenten) im Zip
Grundlegend, Man benötigt NUR eine Connection zur Datenbank. Weil über diese kann man beliebig viele Queries (mit Transaktionen) betreiben. Man darf sich halt selbst nicht die offene Connection schliessen.
Mal sehen, wo es wirklich krankt, ween die lfm dabei sind. Ich werde es vorraussichtlich auf SQLite umstellen, da ich mir den Rechner nicht mt MySQL oder MariaDB versauen will, nachdem es scheinbar keine embedded Version mehr gibt - ist offensichtlich seit einger Zeit deprecated.
Grundlegend, Man benötigt NUR eine Connection zur Datenbank. Weil über diese kann man beliebig viele Queries (mit Transaktionen) betreiben. Man darf sich halt selbst nicht die offene Connection schliessen.
Mal sehen, wo es wirklich krankt, ween die lfm dabei sind. Ich werde es vorraussichtlich auf SQLite umstellen, da ich mir den Rechner nicht mt MySQL oder MariaDB versauen will, nachdem es scheinbar keine embedded Version mehr gibt - ist offensichtlich seit einger Zeit deprecated.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
-
- Beiträge: 37
- Registriert: So 31. Mai 2020, 21:13
Re: Verbindung zu MySQL DB zu verschieden Tabellen
Sorry, hab ein zweites Paket angehangen mit den restlichen Dateien.
Zuletzt geändert von Daniel_Berlin am Do 4. Jun 2020, 16:55, insgesamt 1-mal geändert.
- af0815
- Lazarusforum e. V.
- Beiträge: 6771
- 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: Verbindung zu MySQL DB zu verschieden Tabellen
kauforders.pas und test.pas (und dazugehörige lfm) fehlen noch
ich nehme an, das kauforders nicht so wichtig ist, aber in test (TForm6) dein Problem drinnensteckt.
ich nehme an, das kauforders nicht so wichtig ist, aber in test (TForm6) dein Problem drinnensteckt.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
-
- Beiträge: 37
- Registriert: So 31. Mai 2020, 21:13
Re: Verbindung zu MySQL DB zu verschieden Tabellen
die test form (Form6) hatte ich eigentlich gelöscht und ist auch nicht wichtig.
die kauforder funktioniert
nur die verkauforders nicht.
die kauforder funktioniert
nur die verkauforders nicht.
Zuletzt geändert von Daniel_Berlin am Do 4. Jun 2020, 16:56, insgesamt 1-mal geändert.
-
- Beiträge: 37
- Registriert: So 31. Mai 2020, 21:13
Re: Verbindung zu MySQL DB zu verschieden Tabellen
ich hab gerade mal die SELECT Abfrage in der Kauforder geändert, so dass ich die Verkaufstabelle abfrage.
Das hat funktioniert (ich sehe die daten der vekraufstabelle)
Anscheind ist irgendwas mit der Form Verkauforder nicht in ordnung
Das hat funktioniert (ich sehe die daten der vekraufstabelle)
Anscheind ist irgendwas mit der Form Verkauforder nicht in ordnung
- af0815
- Lazarusforum e. V.
- Beiträge: 6771
- 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: Verbindung zu MySQL DB zu verschieden Tabellen
So, ich habe das ganze mal auf SQLite umgestickt, die Namensgebung etwas logischer gemacht und den Fehler ausgebaut.
Im debugger sieht man sofort, wenn man auf die OnShow routine geht, das die NIE verwendet wird. Du hast im Objektinspektor das Ereignis nicht an die Procedure gebunden. Deswegen wurden dir nie Daten angezeigt.
C&P Error in User
Edit: Dateien gelöscht aufgrund der Anfrage des Users Daniel_Berlin
Im debugger sieht man sofort, wenn man auf die OnShow routine geht, das die NIE verwendet wird. Du hast im Objektinspektor das Ereignis nicht an die Procedure gebunden. Deswegen wurden dir nie Daten angezeigt.
C&P Error in User

Edit: Dateien gelöscht aufgrund der Anfrage des Users Daniel_Berlin
Zuletzt geändert von af0815 am Fr 5. Jun 2020, 20:39, insgesamt 1-mal geändert.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
-
- Beiträge: 37
- Registriert: So 31. Mai 2020, 21:13
Re: Verbindung zu MySQL DB zu verschieden Tabellen
Super!!! Vielen Dank!
Hat funktioniert
Hat funktioniert

-
- Beiträge: 37
- Registriert: So 31. Mai 2020, 21:13
Re: Verbindung zu MySQL DB zu verschieden Tabellen
Vielen Dank für deine große Hilfe bisher 

Zuletzt geändert von Daniel_Berlin am So 7. Jun 2020, 20:17, insgesamt 2-mal geändert.
- af0815
- Lazarusforum e. V.
- Beiträge: 6771
- 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: Verbindung zu MySQL DB zu verschieden Tabellen
Ungern, weil damit die Info aus dem Thread zerstört wird. Deshalb immer nur das Hochladen was man wirklich zeigen will. Mit den TimeMachines kann man solche Sachen oft zurückholenDaniel_Berlin hat geschrieben: Fr 5. Jun 2020, 13:41 @af0815
Kannst du bitte noch deine Datein aus deinem letzten Post löschen?!
Vielen Dank für deine große Hilfe bisher![]()

Ich habe das mal einmalig gemacht, weil ich es sonst für nicht fair halte, in einem öffentlichen Forum.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).