AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi ADO: Parameter funktionieren nicht(oder ich wende falsch an)
Thema durchsuchen
Ansicht
Themen-Optionen

ADO: Parameter funktionieren nicht(oder ich wende falsch an)

Ein Thema von Die Muhkuh · begonnen am 6. Feb 2006 · letzter Beitrag vom 11. Apr 2007
Antwort Antwort
Seite 2 von 2     12   
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#11

Re: ADO: Parameter funktionieren nicht(oder ich wende falsch

  Alt 6. Feb 2006, 13:24
Zitat von Bernhard Geyer:
Am SQL-Statement kann ich nichts verdächtiges erkennen.
Aber nimm mal statt Value -> AsString.
ADOParameter können entweder so
Delphi-Quellcode:
ADOdataset.Parameters.ParamValues['user'] := username; // Variante A
// oder so
ADOdataset.Parameters.ParamByName('user').Value := username; // Variante B
befüllt werden.
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
Andreas
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#12

Re: ADO: Parameter funktionieren nicht(oder ich wende falsch

  Alt 6. Feb 2006, 13:36
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
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#13

Re: ADO: Parameter funktionieren nicht(oder ich wende falsch

  Alt 6. Feb 2006, 13:43
Zitat von Spider:
Das mit den Feldbezeichnungen wars. Hab die geändert und zack, gings.
Fein. Dann hoffe ich mal, dass sich diese reservierte Wörter in dein (und das der Mitleser) Gedächtnis eingebrannt hat.
Hier noch ein paar Listen dazu:
http://msdn.microsoft.com/library/de...ra-rz_9oj7.asp
http://developer.mimer.com/validator...rved-words.tml
http://www.jsoftware.com/books/help/...rved_words.htm
Man kann sich wirklich dumm und dämlich suchen, falls man eines dieser Wörter als Tabellen-, View- oder Feldname benützt.
Andreas
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#14

Re: ADO: Parameter funktionieren nicht(oder ich wende falsch

  Alt 6. Feb 2006, 13:48
Zitat von shmia:
Zitat von Spider:
Das mit den Feldbezeichnungen wars. Hab die geändert und zack, gings.
Fein. Dann hoffe ich mal, dass sich diese reservierte Wörter in dein (und das der Mitleser) Gedächtnis eingebrannt hat.
Hier noch ein paar Listen dazu:
http://msdn.microsoft.com/library/de...ra-rz_9oj7.asp
http://developer.mimer.com/validator...rved-words.tml
http://www.jsoftware.com/books/help/...rved_words.htm
Man kann sich wirklich dumm und dämlich suchen, falls man eines dieser Wörter als Tabellen-, View- oder Feldname benützt.
Hihi, dass hoffe ich auch

Danke für die Links Sowas kann man immer brauchen
  Mit Zitat antworten Zitat
heyko

Registriert seit: 2. Apr 2007
3 Beiträge
 
#15

Re: ADO: Parameter funktionieren nicht(oder ich wende falsch

  Alt 11. Apr 2007, 11:32
Ich grabe diesen Thread mal wieder aus da mein Problem sehr ähnlich ist.


SQL:
Zitat:
SELECT * FROM tw_nutzer WHERE( userid = :param1 AND password = :param2 )
Code:
Delphi-Quellcode:
      {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;
Letzten Endes wird aber nur folgendes ausgeführt:
Zitat:
SELECT * FROM tw_nutzer WHERE ( userid = ? AND password = ? )
Hilfe
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#16

Re: ADO: Parameter funktionieren nicht(oder ich wende falsch

  Alt 11. Apr 2007, 11:40
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;
Andreas
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#17

Re: ADO: Parameter funktionieren nicht(oder ich wende falsch

  Alt 11. Apr 2007, 11:53
Im ursprünlichen Thread ging es aber um einen INSERT
Markus Kinzler
  Mit Zitat antworten Zitat
heyko

Registriert seit: 2. Apr 2007
3 Beiträge
 
#18

Re: ADO: Parameter funktionieren nicht(oder ich wende falsch

  Alt 11. Apr 2007, 12:13
Zitat von mkinzler:
Im ursprünlichen Thread ging es aber um einen INSERT
ja tut mir Leid ähnlich nicht identisch.

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:
      with qrySelNutzer do
      begin
        close;
        Parameters.ParamValues['param1'] := edit_benutzer.text;
        Parameters.ParamValues['param2'] := edit_password.text;
        Open;
...
geändert.

SQL Command:
SELECT * FROM tw_nutzer WHERE ( userid = ? AND password = ? )
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#19

Re: ADO: Parameter funktionieren nicht(oder ich wende falsch

  Alt 11. Apr 2007, 13:24
Zitat von heyko:
.. aber laut ADOConnectionExecuteComplete sind die Platzhalter Fragezeichen immer noch da und wurden nicht durch die Werte ersetzt.
Achso! Diesen SQL-Text mit ersetzten Parametern wirst du auch nicht so einfach bekommen.
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.
Andreas
  Mit Zitat antworten Zitat
heyko

Registriert seit: 2. Apr 2007
3 Beiträge
 
#20

Re: ADO: Parameter funktionieren nicht(oder ich wende falsch

  Alt 11. Apr 2007, 13:27
Okay vielen Dank erstmal.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:09 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