![]() |
Re: ADO: Parameter funktionieren nicht(oder ich wende falsch
Zitat:
Delphi-Quellcode:
befüllt werden.
ADOdataset.Parameters.ParamValues['user'] := username; // Variante A
// oder so ADOdataset.Parameters.ParamByName('user').Value := username; // Variante B Ich verwende meist Variante A, da weniger Schreibarbeit. .AsString, .AsInteger, u.s.w. gibt es bei den Parametern nicht. Zum Debuggen sollte man besser kein With ... Do Anweisung verwenden, sondern alles komplett ausschreiben. Zumindest Delphi 2-5 können sonst die Inhalte beim Debuggen nicht anzeigen. Wichtig: wenn die INSERT-Anweisung korrekt aussieht, aber dennoch Syntaxfehler gemeldet wird, liegt es meist an der Verwendung von reservierten Wörtern. Die Wörter "user" und "domain" könnten je nach SQL-Dialekt schon eine eigene Bedeutung haben. Ich würde empfehlen, die Feldnamen zu ändern. PS:
Delphi-Quellcode:
// das gefällt mir überhaupt nicht
// es sieht nach einem Speicherleck aus with TCipher_Rijndael.Create(PW, nil) do begin ParamByName('pw').Value := EncodeString(p.Passwort); end; // ich würde das Passwort zunächst direkt im Klartext speichern // nachdem das funktioniert hat, würde ich das verschlüsselte PW speichern |
Re: ADO: Parameter funktionieren nicht(oder ich wende falsch
Hi,
bin jetzt wieder zurück zum TADOQuery. @shmia Danke :) Das mit den Feldbezeichnungen wars. Hab die geändert und zack, gings. Das mit deinem PS hab ich schon geändert, trotzdem danke ;-) |
Re: ADO: Parameter funktionieren nicht(oder ich wende falsch
Zitat:
Hier noch ein paar Listen dazu: ![]() ![]() ![]() Man kann sich wirklich dumm und dämlich suchen, falls man eines dieser Wörter als Tabellen-, View- oder Feldname benützt. |
Re: ADO: Parameter funktionieren nicht(oder ich wende falsch
Zitat:
Danke für die Links ;-) Sowas kann man immer brauchen :D |
Re: ADO: Parameter funktionieren nicht(oder ich wende falsch
Ich grabe diesen Thread mal wieder aus da mein Problem sehr ähnlich ist.
SQL: Zitat:
Delphi-Quellcode:
Letzten Endes wird aber nur folgendes ausgeführt:
{Zugriffsberechtigung des Nutzers aus TW_Nutzer abfragen}
with qrySelNutzer do begin prepared:= true; active := false; close; Parameters.ParamByName('param1').Value := edit_benutzer.text; Parameters.ParamByName('param2').Value := edit_password.text; prepared := true; ExecSQL; end; Zitat:
|
Re: ADO: Parameter funktionieren nicht(oder ich wende falsch
Delphi-Quellcode:
with qrySelNutzer do
begin close; // Schreibweise mit ParamValues[] ist kürzer als ParamByName().Value Parameters.ParamValues['param1'] := edit_benutzer.text; Parameters.ParamValues['param2'] := edit_password.text; // ExecSQL; // FALSCH! SELECT * FROM .... gibt ja eine Datenmenge zurück Open; // Richtig end; |
Re: ADO: Parameter funktionieren nicht(oder ich wende falsch
Im ursprünlichen Thread ging es aber um einen INSERT
|
Re: ADO: Parameter funktionieren nicht(oder ich wende falsch
Zitat:
Leider hat mir das nicht geholfen. Habe es jetzt zwar abgekürzt aber laut ADOConnectionExecuteComplete sind die Platzhalter Fragezeichen immer noch da und wurden nicht durch die Werte ersetzt. Habe es auf
Delphi-Quellcode:
geändert.
with qrySelNutzer do
begin close; Parameters.ParamValues['param1'] := edit_benutzer.text; Parameters.ParamValues['param2'] := edit_password.text; Open; ... SQL Command:
SQL-Code:
SELECT * FROM tw_nutzer WHERE ( userid = ? AND password = ? )
|
Re: ADO: Parameter funktionieren nicht(oder ich wende falsch
Zitat:
Die Ersetzung der Parameter Fragezeichen findet erst tiefer in einer ADO Treiberschicht statt. Trotzdem arbeitet die Abfrage mit Parametern richtig. Möglicherweise kann man die Parameterersetzung anhand des Interface "Command15" selbst vornehmen, aber das passt jetzt nicht mehr zu diesen Thread. |
Re: ADO: Parameter funktionieren nicht(oder ich wende falsch
Okay vielen Dank erstmal.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:14 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-2025 by Thomas Breitkreuz