Verbindung zu MySQL DB zu verschieden Tabellen

Für Themen zu Datenbanken und Zugriff auf diese. Auch für Datenbankkomponenten.
Antworten
Daniel_Berlin
Beiträge: 37
Registriert: So 31. Mai 2020, 21:13

Verbindung zu MySQL DB zu verschieden Tabellen

Beitrag von Daniel_Berlin »

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
Zuletzt geändert von Daniel_Berlin am Do 4. Jun 2020, 16:56, insgesamt 1-mal geändert.

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 4373
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Niederösterreich
Kontaktdaten:

Re: Verbindung zu MySQL DB zu verschieden Tabellen

Beitrag von af0815 »

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
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Daniel_Berlin
Beiträge: 37
Registriert: So 31. Mai 2020, 21:13

Re: Verbindung zu MySQL DB zu verschieden Tabellen

Beitrag von Daniel_Berlin »

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.

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 4373
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Niederösterreich
Kontaktdaten:

Re: Verbindung zu MySQL DB zu verschieden Tabellen

Beitrag von af0815 »

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 :mrgreen:
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Daniel_Berlin
Beiträge: 37
Registriert: So 31. Mai 2020, 21:13

Re: Verbindung zu MySQL DB zu verschieden Tabellen

Beitrag von Daniel_Berlin »

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.
Zuletzt geändert von Daniel_Berlin am Do 4. Jun 2020, 16:55, insgesamt 1-mal geändert.

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 4373
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Niederösterreich
Kontaktdaten:

Re: Verbindung zu MySQL DB zu verschieden Tabellen

Beitrag von af0815 »

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.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Daniel_Berlin
Beiträge: 37
Registriert: So 31. Mai 2020, 21:13

Re: Verbindung zu MySQL DB zu verschieden Tabellen

Beitrag von Daniel_Berlin »

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.

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 4373
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Niederösterreich
Kontaktdaten:

Re: Verbindung zu MySQL DB zu verschieden Tabellen

Beitrag von af0815 »

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.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Daniel_Berlin
Beiträge: 37
Registriert: So 31. Mai 2020, 21:13

Re: Verbindung zu MySQL DB zu verschieden Tabellen

Beitrag von Daniel_Berlin »

die test form (Form6) hatte ich eigentlich gelöscht und ist auch nicht wichtig.
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.

Daniel_Berlin
Beiträge: 37
Registriert: So 31. Mai 2020, 21:13

Re: Verbindung zu MySQL DB zu verschieden Tabellen

Beitrag von Daniel_Berlin »

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

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 4373
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Niederösterreich
Kontaktdaten:

Re: Verbindung zu MySQL DB zu verschieden Tabellen

Beitrag von af0815 »

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 :mrgreen:

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).

Daniel_Berlin
Beiträge: 37
Registriert: So 31. Mai 2020, 21:13

Re: Verbindung zu MySQL DB zu verschieden Tabellen

Beitrag von Daniel_Berlin »

Super!!! Vielen Dank!
Hat funktioniert :)

Daniel_Berlin
Beiträge: 37
Registriert: So 31. Mai 2020, 21:13

Re: Verbindung zu MySQL DB zu verschieden Tabellen

Beitrag von Daniel_Berlin »

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.

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 4373
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Niederösterreich
Kontaktdaten:

Re: Verbindung zu MySQL DB zu verschieden Tabellen

Beitrag von af0815 »

Daniel_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 :)
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ückholen :-)
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).

Antworten