![]() |
Query mit Parametern vorbereiten
Hi,
ich arbeite mit mysql und den mysqlDAC und versuche das folgende:
Delphi-Quellcode:
Fehlermeldung: '' is not a valid integer.Query.Close; Query.Prepared := True; Query.SQL.Add('SELECT *'); Query.SQL.Add('FROM Tablename'); Query.SQL.Add('WHERE :KeyName='+QuotedStr(KeyValue)); Query.Params.ParamByName('KeyName').Value:= Edit.Text; Query.SQL.Text:
SQL-Code:
Was wohl bedeutet, dass der Parameter nicht richtig erkannt wird!? Wie setze ich das Statement korrekt zusammen?
SELECT *
FROM KUNDE WHERE :Kunde_ID=1 |
Re: Query mit Parametern vorbereiten
Hai barnti,
versuche mal
Delphi-Quellcode:
Query.Params.ParamByName('KeyName').AsString:= Edit.Text;
|
Re: Query mit Parametern vorbereiten
Hallo,
mach mal das Prepared hinter das PAramByName, also
Delphi-Quellcode:
Gruß
Query.Close;
Query.SQL.Add('SELECT *'); Query.SQL.Add('FROM Tablename'); Query.SQL.Add('WHERE :KeyName='+QuotedStr(KeyValue)); Query.Params.ParamByName('KeyName').Value:= Edit.Text; Query.Prepared := True; Ken |
Re: Query mit Parametern vorbereiten
Hallo sharky,
leider das selbe Ergebnis. Ich habe, glaube ich, das Vorbereiten einer Query mit Parametern noch nicht ganz geblickt... Weitere Ideen? |
Re: Query mit Parametern vorbereiten
Hi,
@CenBells: leider keine Änderung... |
Re: Query mit Parametern vorbereiten
Hallo barnti,
Zitat:
SQL-Code:
SELECT *
FROM KUNDE WHERE Kunde_ID=:KeyName |
Re: Query mit Parametern vorbereiten
Es scheint wirklich so zu sein das ich als Parameter keine Feldnamen eintragen kann?!??
|
Re: Query mit Parametern vorbereiten
Hi r_kerber,
Doch das ist schon so gemeint. Ich möchte alle variablen Werte in Parametern abbilden. Zitat:
Noch einmal zum Verständnis: Ich möchte die aktuelle Tabelle mit dem aktuellen Wert noch eimal in der DB abrufen: Tablename: Kunde
Delphi-Quellcode:
Query.Close;
Query.Prepared := True; Query.SQL.Add('SELECT *'); Query.SQL.Add('FROM Table'); Query.SQL.Add('and :KeyName=:KeyValue'); Query.SQL.Add('FOR UPDATE'); Query.SQL.Text; // Hier steht mein Feldname: 'Kunde_ID' Query.Params.ParamByName('KeyName').AsString:= Grid.DataSource.DataSet.Fields[0].FieldName; // Hier steht mein Wert des Feldes 'Kunde_ID' Query.Params.ParamByName('KeyValue').AsString:= Grid.DataSource.DataSet.Fields[0].AsString; // Hier steht der Tabellenname 'Table' Query.Params.ParamByName('Table').AsString:= Grid.DataSource.Name |
Re: Query mit Parametern vorbereiten
@ sharky,
jo das fürchte ich auch. Ich kann nur Werte für Spaltenamen als Parameter übergeben!? Das wäre sehr schade, denn die Benutzung von Parametern fördert die Lesbarkeit ungemein. Also: Keine Möglichkeit das mit Parametern zu lösen? |
Re: Query mit Parametern vorbereiten
Hai barnti,
bei meinen Tests ging es so nicht. Eine andere Möglickeit wäre das Du die "Parameter" für Tabelle und feldname durch ein StringReplace ersetzt. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:52 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