AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken ADOQuery SQL Parameter keine Übergabe
Thema durchsuchen
Ansicht
Themen-Optionen

ADOQuery SQL Parameter keine Übergabe

Ein Thema von daredd · begonnen am 7. Mär 2011 · letzter Beitrag vom 7. Mär 2011
Antwort Antwort
Seite 4 von 5   « Erste     234 5      
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#31

AW: ADOQuery SQL Parameter keine Übergabe

  Alt 7. Mär 2011, 15:56
Und laut Hilfe sollte man dafür wohl ein TADOCommand statt einer Query benutzen.
Es sei denn er möchte da auch mit Parametern arbeiten
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#32

AW: ADOQuery SQL Parameter keine Übergabe

  Alt 7. Mär 2011, 16:05
Ich mache nix mit ADO, aber
Zitat:
TADOCommand führt den in der Eigenschaft CommandText angegebenen Befehl aus. Es kann immer nur ein Befehl aufgerufen werden. Die Parameter des Befehls werden in der Eigenschaft Parameters übergeben. Die eigentliche Ausführung wird von Methode Execute durchgeführt.
Parameters scheint es ja zu geben.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#33

AW: ADOQuery SQL Parameter keine Übergabe

  Alt 7. Mär 2011, 16:12
Ich mache nix mit ADO, aber
Zitat:
TADOCommand führt den in der Eigenschaft CommandText angegebenen Befehl aus. Es kann immer nur ein Befehl aufgerufen werden. Die Parameter des Befehls werden in der Eigenschaft Parameters übergeben. Die eigentliche Ausführung wird von Methode Execute durchgeführt.
Parameters scheint es ja zu geben.
jo, stimmt ... habe ich mit TADOConnection.Execute verwechselt (Augen auf beim Eierkauf )
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
daredd

Registriert seit: 2. Apr 2006
433 Beiträge
 
#34

AW: ADOQuery SQL Parameter keine Übergabe

  Alt 7. Mär 2011, 16:13
Das mit dem Update funktioniert ganz gut. Nun noch ein kleines Problem, in der Tabelle einen Tabelle sind Einkaufspreise gegeben. Ich muss nun in die neue Tabelle die berechnten Verkaufspreise übergeben.

Bis jetzt habe ich das hier:
Delphi-Quellcode:
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('Update Warenbestand set products_price = :price');
ADOQuery1.Parameters.ParamByName('price').Value := FloatToStr(PreisKalkulieren(table1.FieldByName('EK_EUR').AsFloat));
ADOQuery1.ExecSQL;
Das Problem liegt auf der Hand, für jede Zeile in der Tabelle Warenbestand wird immer der selbe Preis-Wert ermittelt. Komm ich mit eine while not table1.Eof... table1.next weiter?
---------------------------------------------------------------------------
Mein Vista-Kind bringt frischen Wind

Gruß DaRedd aka The Red Dragon
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#35

AW: ADOQuery SQL Parameter keine Übergabe

  Alt 7. Mär 2011, 16:27
Dann musst Du die alten Datensätze wohl durchgehen. Das bedeutet, dass das ADOCommand noch eine WHERE-Klausel benötigt, um den neuen Datensatz eindeutig zu identifizieren.

[edit] Es sei denn, der neue Preis wird immer gleich berechnet, dann kannst Du das auch per SQL in einem Rutsch machen. [/edit]
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
daredd

Registriert seit: 2. Apr 2006
433 Beiträge
 
#36

AW: ADOQuery SQL Parameter keine Übergabe

  Alt 7. Mär 2011, 17:02
Ich denke nicht, dass es so richtig ist. Hab mir das mal mit Where angeschaut und das query scheint nicht den nächsten Wert aus der Ausgangs-Tabelle zu ziehen.

Mit AdoTable sah das so aus:
Delphi-Quellcode:
while not table1.eof do
begin
table2.fieldbyname('products_price').AsFloat := CalcVerkaufsPreis(table1.fieldbyname('einkauf_price').AsFloat);
table2.post;
table1.next;
table2.next;
end;
Wo springt das Query mit Where auf die nächste Zeile in table1 ?
---------------------------------------------------------------------------
Mein Vista-Kind bringt frischen Wind

Gruß DaRedd aka The Red Dragon
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#37

AW: ADOQuery SQL Parameter keine Übergabe

  Alt 7. Mär 2011, 17:08
Wenn ich das richtig verstanden habe, willst Du die Daten aus der neuen Tabelle updaten und dabei Werte aus der anderen, alten Tabelle nutzen?
Das Stichwort ist "correlated subquery" also korrelierte Unterabfrage.

Hier gibts ein schönes Beispiel, fast schon die passenden Felder, auf Deutsch und in Farbe
http://www.sql-und-xml.de/sql-tutori...er-zeilen.html

Unter "Beispiel" Punkt 6 dürfte das stehen, was Du brauchst.

EDIT: Hab Dein letztes Post übersehen, aber ich denke, Du kannst es mit einem einzigen update machen.
EDIT2: Dein Beispiel sieht sehr eigenartig aus. Tabelle 1 und Tabelle 2 werden überhaupt nicht nach irgendeinem Schlüssel "synchronisiert", das wär höchstens Glückssache, wenn das klappt
Gruß, Jo

Geändert von jobo ( 7. Mär 2011 um 17:11 Uhr) Grund: gepennt
  Mit Zitat antworten Zitat
daredd

Registriert seit: 2. Apr 2006
433 Beiträge
 
#38

AW: ADOQuery SQL Parameter keine Übergabe

  Alt 7. Mär 2011, 17:10
jobo, danke für denk link... sieht vielversprechend aus! wenns klappt melde ich mich ))
---------------------------------------------------------------------------
Mein Vista-Kind bringt frischen Wind

Gruß DaRedd aka The Red Dragon
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#39

AW: ADOQuery SQL Parameter keine Übergabe

  Alt 7. Mär 2011, 17:17
wenn's nicht klappt vermutlich erst recht
Gruß, Jo
  Mit Zitat antworten Zitat
daredd

Registriert seit: 2. Apr 2006
433 Beiträge
 
#40

AW: ADOQuery SQL Parameter keine Übergabe

  Alt 7. Mär 2011, 17:25
haha )) ... so hat geklappt, danke!
hier mal ein beispiel aus meinem code:

Delphi-Quellcode:
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('UPDATE Warenbestand As W INNER JOIN KOMSA As K On W.external_id = K.KOMSANUMMER SET W.products_weight = K.GEWICHT/1000');
ADOQuery1.ExecSQL;
Das mit dem Preis ist noch komplizierter, weil ich dort unterschiedliche prozent-kategorien haben...
gibts eigentlich so was wie ein if then in sql?
---------------------------------------------------------------------------
Mein Vista-Kind bringt frischen Wind

Gruß DaRedd aka The Red Dragon
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 4 von 5   « Erste     234 5      


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 15:37 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