Autor Beitrag
funcry
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 110
Erhaltene Danke: 1

Win7 64, XP 32
C# (VS 2010 EE), Delphi (TD 2006 Win32)
BeitragVerfasst: Mi 06.08.08 16:19 
Folgendes kurioses Problem habe ich. Ich habe ein kleines Programm geschrieben welches einen SQL-Befehl ausführt und das Ergebnis wegspeichert. Der SQL-Befehl kommt aus einer anderen Software, und das ganze dient an einer bestimmten Stelle zur Automatisierung. Das Programm ist für die Kommandozeile erstellt {$APPTYPE CONSOLE}, da ich vor habe das ganze in ein kleines Script zu packen.

Das Problem welches jetzt auftaucht ist, dass zwar viele SQL-Befehle klappen, manche jedoch nicht. Wobei die die nicht klappen direkt aus Delphi heraus dann doch funktionieren. Es scheint also ein Problem durch die Konsole (c:\windows\system32\cmd.exe, Windows XP SP3) zu entstehen.

Beispiel:
Das SQL (siehe Beispiel) funkioniert über mein Programm wenn ich es mittels F9 starte. Jedoch nicht wenn ich es per Konsole (cmd) ausführe. Wenn ich eine Verknüpfung unter Windows erstelle, welche das Programm per cmd/c aufruft, klappt es erstaunlicherweise wieder. Wobei generell in der DOS-Box andere SQL-Befehle wiederum klappen.

Fehlermeldung:
EOleException [Oracle][ODBC][Ora]ORA-00904: Ungültiger Spaltenname

Detaillierter:
EOleException [Oracle][ODBC][Ora]ORA-00904: Ungültiger Spaltenname
Source: Microsoft OLE DB Provider for ODBC Drivers
Error Code: -2147217900 [80040E14]
Facility: ITF Code: 4

Hier der SQL-Befehl:
ausblenden SQL-Anweisung
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
SELECT   ATKO05.NR_VT NR_VT05
    , SUM(RAAT04.GES_WERT_RAAT*IS_GREATER(ATKO05.NR_VGART
    ,100)*IS_LESS(ATKO05.NR_VGART
    ,110)+(RAAT04.GES_WERT_RAAT*-1)*IS_GREATER(ATKO05.NR_VGART
    ,109)*IS_LESS(ATKO05.NR_VGART
    ,120)) EXPR
    , RALF06.BU_DATUM_RALF BU_DATUM_RALF06
   FROM RAAT RAAT04
    , ATKO ATKO05
    , RALF RALF06
   WHERE RAAT04.NR_ATKO_RAAT = ATKO05.NR_ATKO 
    AND RALF06.NR_RALF = RAAT04.NR_RALF 
    AND RALF06.BU_DATUM_RALF >= to_date('01.04.2007','dd.mm.yyyy'
    AND ATKO05.ST_RA_ATKO = 602 
    AND ATKO05.ST_ATKO != 130 
    AND ATKO05.NR_VT IN ('2','4','43','44')
   GROUP BY ATKO05.NR_VT, RALF06.BU_DATUM_RALF
   
   ORDER BY 13


Zuletzt bearbeitet von funcry am Do 07.08.08 07:59, insgesamt 1-mal bearbeitet
funcry Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 110
Erhaltene Danke: 1

Win7 64, XP 32
C# (VS 2010 EE), Delphi (TD 2006 Win32)
BeitragVerfasst: Do 07.08.08 07:58 
Oh mann wie peinlich, das Problem lag am Datenbankuser. Warum auch immer habe ich beim cmd Aufruf einen anderen wie in der IDE verwendet. Dieser hatte schlicht keinen Zugriff auf bestimmte Tabellen.