![]() |
Parameter zur Query hinzufügen
Hallo,
Ich arbeite mit mysql und möchte einer Query zur Laufzeit einen Parameter zuweisen, um eine Master-Detail-Beziehung zu etablieren. Ich schaffe es einfach nicht den Parameter hinzuzufügen!
Delphi-Quellcode:
Was mache ich falsch?
...
Query.Close; Query.Prepare; Query.Params.AddParam(TParam(KeyField)); // wobei KeyField das Schlüsselfeld aus Query.UnPrepare; // anderen Tabelle ist. Query.SQL.Text; Query.Open; |
Re: Parameter zur Query hinzufügen
Das kann so nicht klappen, da die wesentliche Arbeitsgrundlage der Query das in ihrer "Text"-Eigenschaft hinterlegte SQL-Statement ist. Wenn dort nicht schon ein Parameter an sinnvoller Stelle angelegt ist (mit: ":Parametername" - ohne Anführungszeichen), dann würde auf Deine Art einfach ein Parameter hinten "angehangen" werden, was ein ungültiges SQL-Statement ergeben würde.
Versuch es mal so:
Delphi-Quellcode:
"DetaillTabelle", "Mastertabelle" und "FremdSchlüsselfeld" mußt Du natürlich durch die richtigen Tabellen- bzw. Feldnamen ersetzen, ebenso wie "DeineBedingung" durch eine sinnvolle Einschränkung zu ersetzen oder ganz wegzulassen ist.
Query.Close;
Query.SQL.Clear; //löschen des alten SQL-Statements Query.SQL.Add(' SELECT * -- oder Feldliste angeben '); Query.SQL.Add(' FROM DetaillTabelle A '); Query.SQL.Add('INNER JOIN MasterTabelle B '); Query.SQL.Add(' ON B.'+KeyField.FieldName+' = A.FremdSchlüsselFeld'); Query.SQL.Add(' WHERE DeineBedingung '); Query.Open; Gruß |
Re: Parameter zur Query hinzufügen
Hallo,
ok, mein Fehler. Ich erstelle jetzt einfach ein Statement mit Parameter. So kann ich diesen auch benutzen. Danke Leuselator! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:04 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz