Einzelnen Beitrag anzeigen

TBx
(Administrator)

Registriert seit: 13. Jul 2005
Ort: Stadthagen
1.893 Beiträge
 
Delphi 12 Athens
 
#7

Re: Firebird StoredPorc und Feldname als Paramter

  Alt 28. Sep 2007, 13:34
Zitat von Jens Schumann:
SQL-Code:
EXECUTE STATEMENT 'SELECT SUM('||:L_DEZ||') AS DEZ FROM positiondata pd
WHERE (pd.jahr=
'||:A_JAHR||' AND pd.entity='||:A_ENTITY ||' AND
pd.posnr=
'||:A_POSNR||' and pd.ver='||:L_VER||')
          INTO :A_VALUE;
Parameter:
A_JAHR = 2007
A_ENTITY = 100132
A_POSNR = GV5031001110
L_DEZ definierst Du in der Stored Procedure als Dez.
L_Ver nehme ich jetzt mal als 1 an.

Dann sieht das Stetement so aus:
SQL-Code:
SELECT SUM(Dez) as DEZ
     FROM positiondata pd
     WHERE (pd.jahr=2007
       AND pd.entity=100132
       AND pd.posnr=GV5031001110
       AND pd.ver=1)
korrekt müßte es lauten:
SQL-Code:
SELECT SUM(Dez) as DEZ
     FROM positiondata pd
     WHERE (pd.jahr=2007
       AND pd.entity='100132'
       AND pd.posnr='GV5031001110'
       AND pd.ver=1)
Die fehlenden Anführungeszeichen bei AND pd.entity=100132 fallen nicht ins gewicht, da die automatische Typumwandlung den gewünschten Wert zurückgibt.
Aber in der Zeile AND pd.posnr=GV5031001110 wird GV5031001110 als Feld interpretiert, das der Varchar nicht wie vorgesehen in Hochkomma eingeschlossen ist.

Ich hoffe, etwas Licht ins Dunkel gebracht zu haben.

onlinekater
Thomas Breitkreuz
Gruß Thomas
- Admin DelphiPRAXIS
- Admin Delphi-Treff
- Embarcadero MVP
  Mit Zitat antworten Zitat