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 1 von 2  1 2      
Benutzerbild von Die Muhkuh
Die Muhkuh

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

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

  Alt 6. Feb 2006, 12:37
Datenbank: Access • Version: 2000 • Zugriff über: ADO + SQL
Hi,

ich hab nochmal ein Problem mit meiner Accessdatenbank, auf welche ich per ADO zugreife.

Delphi-Quellcode:
for I := 0 to Count - 1 do
    begin
      p := Items[I];

      profilequery.SQL.Text := 'INSERT INTO profile (user, password, domain, desc) ' +
        'VALUES (:user, :pw, :domain, :desc)';

      with profilequery.Parameters do
      begin
        ParamByName('user').Value := p.Benutzername;

        with TCipher_Rijndael.Create(PW, nil) do
        begin
          ParamByName('pw').Value := EncodeString(p.Passwort);
        end;

        ParamByName('domain').Value := p.Domain;
        ParamByName('desc').Value := p.Beschreibung;
      end;

      tmp := profilequery.SQL.text; // Nur zum Test [1]

      profilequery.ExecSQL;


      profilequery.Close;
    end;
Das Problem ist, dass nach dem einfügen der Parameter, die Parameter nicht verändert werden.
Will heißen, im tmp ([1]) steht noch der SQL-Befehl, ohne die veränderten Parametern.

Vielleicht verwende ich das auch falsch

Danke für euere Antworten,

mfG,

Manu
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#2

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

  Alt 6. Feb 2006, 12:43
Zitat von Spider:
Das Problem ist, dass nach dem einfügen der Parameter, die Parameter nicht verändert werden.
Will heißen, im tmp ([1]) steht noch der SQL-Befehl, ohne die veränderten Parametern.

Vielleicht verwende ich das auch falsch
Das was du machst paßt schon. der String in profilequery.SQL.text darf ja auch nicht verändert werden sonst könnte er nicht mehr für weitere Abfragen verwendet werden und damit wäre ein Verwendung von Prepared Statements nicht möglich.

Folgende Codeanpassung dürfte die Inserts um einiges beschleunigen

Delphi-Quellcode:
  profilequery.SQL.Text := 'INSERT INTO profile (user, password, domain, desc) ' +
        'VALUES (:user, :pw, :domain, :desc)';
  profilequery.Prepare;

  for I := 0 to Count - 1 do
  begin
    p := Items[I];

    with profilequery.Parameters do
    begin
      ParamByName('user').Value := p.Benutzername;

      with TCipher_Rijndael.Create(PW, nil) do
      begin
        ParamByName('pw').Value := EncodeString(p.Passwort);
      end;

      ParamByName('domain').Value := p.Domain;
      ParamByName('desc').Value := p.Beschreibung;
    end;

    profilequery.ExecSQL;
  end;
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

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

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

  Alt 6. Feb 2006, 12:48
Hi Bernhard,

danke. Hab leider vergessen zu schreiben, dass noch die Fehlermeldung "Syntaxfehler in der INSERT INTO-Anweisung" kommt
Vielleicht liegt es doch nicht an den Parametern (weil ich das zuerst dachte...).
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#4

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

  Alt 6. Feb 2006, 12:54
Zitat von Spider:
Hi Bernhard,

danke. Hab leider vergessen zu schreiben, dass noch die Fehlermeldung "Syntaxfehler in der INSERT INTO-Anweisung" kommt
Vielleicht liegt es doch nicht an den Parametern (weil ich das zuerst dachte...).
Am SQL-Statement kann ich nichts verdächtiges erkennen.
Aber nimm mal statt Value -> AsString.
Kommt bei EncodeString auch ein "gültiger" String ohne $00 raus?
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

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

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

  Alt 6. Feb 2006, 12:58
Hi,

auch ohne EncodeString klappt das nicht. Und ich hab nur Value. AsString kommt "Undefinierter Bezeichner".

Ich verwende ja ein TADOQuery.
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#6

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

  Alt 6. Feb 2006, 13:00
Zitat von Spider:
Ich verwende ja ein TADOQuery.
Ersetze mal TADOQuery durch TADODataset.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

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

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

  Alt 6. Feb 2006, 13:05
Hi,

das ADODataset kennt auch kein AsString :-\
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#8

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

  Alt 6. Feb 2006, 13:12
Zitat von Spider:
Hi,

das ADODataset kennt auch kein AsString :-\
OK, gibt kein AsString. Hab's mit den Feld-Klassen verwechselt.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

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

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

  Alt 6. Feb 2006, 13:13
Zitat von Bernhard Geyer:
Zitat von Spider:
Hi,

das ADODataset kennt auch kein AsString :-\
OK, gibt kein AsString. Hab's mit den Feld-Klassen verwechselt.
Dann gehe ich gerade davon, dass du mit deinem Latein am Ende bist?
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#10

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

  Alt 6. Feb 2006, 13:18
Zitat von Spider:
Dann gehe ich gerade davon, dass du mit deinem Latein am Ende bist?
Fast

Nenn mal deine Parameter Param1, ... Param4.
Diese Felder sind doch alle vom Typ varchar, oder?
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 05:36 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