Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Einen Datensatz von einer MySql Tabelle per Click in einem Formular Anzeigen lassen. (https://www.delphipraxis.net/181120-einen-datensatz-von-einer-mysql-tabelle-per-click-einem-formular-anzeigen-lassen.html)

sammynrw 17. Jul 2014 10:42

Datenbank: MySQL • Version: 5. • Zugriff über: MyDac

Einen Datensatz von einer MySql Tabelle per Click in einem Formular Anzeigen lassen.
 
Hallo Delphi Freunde,

Ich habe wieder mal ein problem mit Delphi und MySQL.

In einer DBGrid lasse ich mir meine Datensätze Anzeigen.
Wenn ich die Zeile an klicke ließt er mir den ID Autowert aus. Soweit alles gut.
Aber wie kann ich dann diesen Gesamten Datensatz in einem anderen Formular von Delphi übergeben.
Ich weiss nicht wie ich per SQL diesen Datensatz auslesen kann und wie ich diesen per Code dem Neuen
Formular übergeben kann.

Ich arbeiten mit MyDac und dachte ich könnte mit MyQuery diesen Datensatz (ID) wert auslesen und dem Neuen Formular übergeben. Geht aber nicht. Ich kenne den Weg nicht und weiss auch nicht die Richtige Syntax von SQL :-(

mikhal 17. Jul 2014 10:49

AW: Einen Datensatz von einer MySql Tabelle per Click in einem Formular Anzeigen lass
 
Parameter heißt das Zauberwort. Du hast die ID bereits ermittelt, also öffne im neuen Formular eine Query mit dieser ID als Parameter.

Delphi-Quellcode:
SELECT ID, BLA, BLUBBER
  FROM <TABELLE>
 WHERE ID = :ID_NR
Sollte mit MyDAC recht gut funktionieren, da gibt es wenn ich mich Recht entsinne, einen Reiter Parameter...

Den Rest solltest du zusammen mit der OH hinkriegen.

Grüße
Mikhal

baumina 17. Jul 2014 10:51

AW: Einen Datensatz von einer MySql Tabelle per Click in einem Formular Anzeigen lass
 
Da gibt's wie immer mehrere Wege.

Du könntest z.B. auf das gleiche Dataset greifen, dann stehst schon auf dem richtigen Datensatz.
Oder du machst nochmal einen select mit der übergebenen ID so in dieser Art
SQL-Code:
select * from TABELLE where ID=UEBERGEBENEID;

sammynrw 17. Jul 2014 11:21

AW: Einen Datensatz von einer MySql Tabelle per Click in einem Formular Anzeigen lass
 
Jetzt bekomme ich ein anderes Problem:

Code:
MyQuery1.SQL.Text := 'SELECT ID, anfragen_id, Erfassungsdatum, Gewerblich_Privat, Firma, Anrede, Vorname, Nachname, Straße+Nr, Postleitzahl, Ort, Angebotsart, Benötigter_Betrag, KFZ-Kennzeichen, Fahrzeugart, Hersteller, Modell, Erstzulassung, Akt_Kilometerstand, Leistung, Kraftstoff, Farbe, Ergänzung, Unfall_Vorhanden, Unfall_Vorhanden, Versicherungsart, Telefon, Email, Mobilfunk, Fax, Status, Vertriebspartner_ID, Niederlassung, Sachbearbeiter  FROM cc_fahrzeug_anfragen WHERE ID = :16';
Jetzt Zeigt mir Delphi an das der String zu lang ist :-(

sammynrw 17. Jul 2014 11:22

AW: Einen Datensatz von einer MySql Tabelle per Click in einem Formular Anzeigen lass
 
Baumina <<< Ich werde mal dein Code aussprobieren. ist wohl die gekürzte version :-D

matthiaskary 17. Jul 2014 11:55

AW: Einen Datensatz von einer MySql Tabelle per Click in einem Formular Anzeigen lass
 
Hallo,

probier es mal mit:

MyQuery.SQL.Add('');
MyQuery.SQL.Add('');
MyQuery.SQL.Add(''); usw.

mikhal 17. Jul 2014 12:02

AW: Einen Datensatz von einer MySql Tabelle per Click in einem Formular Anzeigen lass
 
Nicht nur das: es heißt nicht :16 sondern nur 16.

Der Doppelpunkt zeichnet den Parameter aus, also eine Variable, die an die Query übergeben wird. Hier ist einfach der Wert mit der Parameter-Methode zu übergeben.

Delphi-Quellcode:
Query.ParamByName('ID').AsInteger = 16;
Query.Open
Die Methode von Baumina führt auch zum Ziel, birgt aber Sicherheitsprobleme (Stichwort SQL-Injektion).

Grüße
Mikhal

sammynrw 17. Jul 2014 13:10

AW: Einen Datensatz von einer MySql Tabelle per Click in einem Formular Anzeigen lass
 
Danke ... Es geht ... Vielen dank an alle.

Die Variante von mikhal funktioniert: :-D

DeddyH 17. Jul 2014 13:16

AW: Einen Datensatz von einer MySql Tabelle per Click in einem Formular Anzeigen lass
 
Zitat:

Zitat von sammynrw (Beitrag 1265773)
Die Variante von mikhal funktioniert: :-D

Glaub ich nicht, dazu müsste man aus dem Vergleich eine Zuweisung machen (war vermutlich ein Tippfehler) ;)

mikhal 17. Jul 2014 13:28

AW: Einen Datensatz von einer MySql Tabelle per Click in einem Formular Anzeigen lass
 
Ja, Tippfehler oder Pseudocode oder zuviel in anderen Sprachen geschrieben... Obwohl PL/SQL will auch Zuweisungen...:lol:

Grüße
Mikhal


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:00 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz