Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Stored Procedure | Invalid operand for operator <assigment> (https://www.delphipraxis.net/157296-stored-procedure-%7C-invalid-operand-operator-assigment.html)

Metallicwar 6. Jan 2011 19:40

Datenbank: ADS • Version: 9 • Zugriff über: Delphi

Stored Procedure | Invalid operand for operator <assigment>
 
Hallo,
ich habe im Data Architect eine Stored Procedure erstellt.
Code:
CREATE PROCEDURE sp_Rechnungsimport1
   ( 
      Betrag DOUBLE ( 15,2 ),
      Typ INTEGER,
      Bemerkung MEMO,
      Nummer INTEGER,
      Datum DATE,
      Bearbeitungsstatus INTEGER OUTPUT
   )
BEGIN
....
END
ICh poste nur die Parameter, da mit großer Warscheinlichkeit dort der Fehler liegt.

Desweiteren habe ich ein Delphiprogramm geschrieben, welches die Eingabewerte (Edit.Text) an die Stored Procedure übergibt und ausführt.

Delphi-Quellcode:
procedure TfrmRechnungsImport.tbtnUebernehmenClick(Sender: TObject);
begin
  ADSQuery1.SQL.Text:= 'EXECUTE PROCEDURE SP_RechnungsImport1(' +
                        QuotedStr(edtDatum.Text) + ',' +
                        edtRechnungsnr.Text + ',' +
                        QuotedStr(memoBemerkung.Text) + ',' +
                        IntToStr(Integer(cxcbTyp.Properties.Items.Objects[cxcbTyp.ItemIndex])) + ',' +
                        StringReplace(FloatToStr(edtBetrag.Value),',','.',[rfReplaceAll])+ ')';


 AdsQuery1.Open; // --> hier knallts dann, ist auch logisch, nur weiß ich einfach nicht wieso?!? :o
Beim Öffnen der Query erhalte ich die Fehlermeldung <Invalide operand for operation>.
Übergebe ich irgendwelche Werte als falschen Datentyp oder falsche Reihenfolge... ?!? :X

mkinzler 6. Jan 2011 19:42

AW: Stored Procedure | Invalid operand for operator <assigment>
 
Warum verwendest du keine parametrisierte Abfragen?

Metallicwar 6. Jan 2011 19:49

AW: Stored Procedure | Invalid operand for operator <assigment>
 
weil ich es damit lösen soll!!! :-)
Hast du eine Idee, weil ich sitz schon ne ganze Weile da und bin am überlegen und testen...
ich habe mal die Werte beim ausführen umgedreht, also ...
Code:
EXECUTE PROCEDURE SP_RechnungsImport1('01.01.2011',10005,'test',10,18)
da erhalte ich ja die Fehlermeldung invalid operand for operator <assigment>
Habe mal zum Test die Werte umgedreht, also ...
Code:
EXECUTE PROCEDURE SP_RechnungsImport1(18,10,'test',10005,'01.01.2011')
dann bekomm ich die Fehlermeldung invalid operand for operator <INVALID DATE>
aber was ist an dem Datum falsch? :o
oder hab ich jetzte eine falsche Reihenfolge?

mkinzler 6. Jan 2011 19:52

AW: Stored Procedure | Invalid operand for operator <assigment>
 
Vielleicht wird kein deutsches Datumsformat erwartet.

Metallicwar 6. Jan 2011 19:57

AW: Stored Procedure | Invalid operand for operator <assigment>
 
mkinzler ..
dadran hab ich garnicht mehr gedacht.. hab zwar windowsdatum angekuckt, aber nicht datum im Data Architect.. da stand's auf dd-mm-yyyy ...
naja ich glaub das war's wohl !!!!
VIELEN VIELEN Dank!
Falls es noch probleme geben sollte, meld ich mich ! :)

mkinzler 6. Jan 2011 19:59

AW: Stored Procedure | Invalid operand for operator <assigment>
 
Das ist genau eine Grund, warum man Parameter verwenden sollte.

joachimd 7. Jan 2011 10:34

AW: Stored Procedure | Invalid operand for operator <assigment>
 
Zitat:

Zitat von Metallicwar (Beitrag 1072775)
mkinzler ..
dadran hab ich garnicht mehr gedacht.. hab zwar windowsdatum angekuckt, aber nicht datum im Data Architect.. da stand's auf dd-mm-yyyy ...
naja ich glaub das war's wohl !!!!
VIELEN VIELEN Dank!
Falls es noch probleme geben sollte, meld ich mich ! :)

AdsSetDateFormat aus der Unit ACE hilft. einfach zu Programmstart mal ein
Delphi-Quellcode:
ACE.ADSSetDateFormat(ShortDateFormat)
ausführen und gut. Und mKinzler hat recht: Nimm bitte, bitte Parameter ... sonst knallt's eventuell beim nächsten Rechner wieder, weil dort ein anderes Format eingestellt ist und Du ganz hart das deutsche codierst.


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:02 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