AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Fehler in SQL Statement?
Thema durchsuchen
Ansicht
Themen-Optionen

Fehler in SQL Statement?

Ein Thema von BeerBear · begonnen am 24. Okt 2005 · letzter Beitrag vom 24. Okt 2005
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von BeerBear
BeerBear

Registriert seit: 23. Aug 2005
Ort: Lübeck
85 Beiträge
 
#1

Fehler in SQL Statement?

  Alt 24. Okt 2005, 08:47
Datenbank: Oracle • Zugriff über: ?
Guten Morgen,

Ich hab da mal 2 SQL Statements, die bei mir Fehler verursachen. Vielleicht sieht ja jemand den Fehler.

Zum einen: Rechtes Anführungszeichen fehlt.

Delphi-Quellcode:
with TQuery( DS ) do
        begin
          SQL.Clear;
          SQL.Add(' Select REKV_ID as COLUMN1, REKV_TYP as COLUMN2, LF_NAME as COLUMN3, REKV_URSACHE as COLUMN4, REKV_URSACHE_CODE as COLUMN5 from REK_VERU, LF_STM ');
          SQL.Add(' where ( REKV_REKF_ID = :REKF_ID ) and ( REKV_TYP = ''L'' ) and ( REKV_REF_ID = LF_ID (+)) union ');
          SQL.Add(' Select REKV_ID as COLUMN1, REKV_TYP as COLUMN2, KD_NAME as COLUMN3, REKV_URSACHE as COLUMN4, REKV_URSACHE_CODE as COLUMN5 from REK_VERU, KD_STM ');
          SQL.Add(' where ( REKV_REKF_ID = :REKF_ID ) and ( REKV_TYP = ''K'' ) and ( REKV_REF_ID = KD_ID (+)) union ');
          SQL.Add(' Select REKV_ID as COLUMN1, REKV_TYP as COLUMN2, QM_ABTEILUNG as COLUMN3, REKV_URSACHE as COLUMN4, REKV_URSACHE_CODE as COLUMN5 from REK_VERU, QM_ABT ');
          SQL.Add(' where ( REKV_REKF_ID = :REKF_ID ) and ( REKV_TYP = ''I'' ) and ( REKV_REF_ID = QM_ABT_ID (+)) union ');
          SQL.Add(' Select REKV_ID as COLUMN1, REKV_TYP as COLUMN2, '' as COLUMN3, REKV_URSACHE as COLUMN4, REKV_URSACHE_CODE as COLUMN5 from REK_VERU, KD_STM ');
          SQL.Add(' where ( REKV_REKF_ID = :REKF_ID ) and ( REKV_TYP in ( ''S'',''O'' ) ) ');
          SQL.Add(' order by 2,3 ');
        end;
Und zum Anderen ein allgemeiner SQL Fehler.

Delphi-Quellcode:
with TQuery( DS ) do
        begin
          SQL.Add(' select fd.*, fst.CA_FS_BEZ, ms.CA_MS_NR ');
          SQL.Add(' from ');
          SQL.Add(' REK_FD_PPM fd, CA_FERT_ST fst, CA_MASCH ms ');
          SQL.Add(' where ');
          SQL.Add(' ( fd.REKFD_REKF_ID = :REKF_ID ) and ');
          SQL.Add(' ( fd.REKFD_FS_ID = fst.CA_FS_ID (+)) and ');
          SQL.Add(' ( fd.REKFD_MAS_ID = ms.CA_MS_ID (+)) ');
          SQL.Add(' order by REKFD_DATUM desc ');
        end;
Der Fehler sitzt immer vor dem Bildschirm.
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: Fehler in SQL Statement?

  Alt 24. Okt 2005, 09:16
Auch guten Morgen.

Der erste Fehler sitzt hier:

Delphi-Quellcode:
...
SQL.Add(' Select REKV_ID as COLUMN1, REKV_TYP as COLUMN2, '' as COLUMN3, REKV_URSACHE as COLUMN4, REKV_URSACHE_CODE as COLUMN5 from REK_VERU, KD_STM ');
...
Es muss '''' as COLUMN3 heißen.

Grüße vom marabu
  Mit Zitat antworten Zitat
ken_jones

Registriert seit: 16. Mai 2005
Ort: Luzern
154 Beiträge
 
Delphi 10 Seattle Enterprise
 
#3

Re: Fehler in SQL Statement?

  Alt 24. Okt 2005, 09:24
Zu Fehler 2: Kann es sein, dass das Feld "REKFD_DATUM" in mehreren Tabellen vorkommt?
Dann müsstest du die Zeile "SQL.Add(' order by REKFD_DATUM desc '); " entsprechend mit dem Tabellenprefix ergänzen, so a la "SQL.Add(' order by fd.REKFD_DATUM desc '); "

Greets,
Ken
  Mit Zitat antworten Zitat
Benutzerbild von BeerBear
BeerBear

Registriert seit: 23. Aug 2005
Ort: Lübeck
85 Beiträge
 
#4

Re: Fehler in SQL Statement?

  Alt 24. Okt 2005, 09:36
Also Fehler 1 ist behoben.
Vielen Dank.

Aber Fehler 2 bleibt.
Habs ausprobiert, aber funzt nich. Außerdem dürfte die Spalte in keiner weiteren Tabelle auftauchen.
Der Fehler sitzt immer vor dem Bildschirm.
  Mit Zitat antworten Zitat
ken_jones

Registriert seit: 16. Mai 2005
Ort: Luzern
154 Beiträge
 
Delphi 10 Seattle Enterprise
 
#5

Re: Fehler in SQL Statement?

  Alt 24. Okt 2005, 09:45
Hmm.. Der SQL Code sollte eigentlich stimmen. Ich denke du hast sicherlich ausprobiert, ob er im TOAD oder so funktioniert.
Könnte mir höchstens vorstellen, dass der Parameter "REKF_ID" vielleicht falsch gesetzt wird, als String statt Integer oder sowas...

Greets,
Ken
  Mit Zitat antworten Zitat
Benutzerbild von mikhal
mikhal

Registriert seit: 11. Sep 2003
Ort: Linz am Rhein
796 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: Fehler in SQL Statement?

  Alt 24. Okt 2005, 09:46
Ist in Abfrage 2 das SQL-Statement tatsächlich gelöscht, bevor du mit Add neue Zeilen einfügst?

Grüße
Mikhal
Michael Kraemer
Computer erleichtern die Arbeit...
...und die Erde ist eine Scheibe!
  Mit Zitat antworten Zitat
Benutzerbild von BeerBear
BeerBear

Registriert seit: 23. Aug 2005
Ort: Lübeck
85 Beiträge
 
#7

Re: Fehler in SQL Statement?

  Alt 24. Okt 2005, 09:53
Oh Nein!

Bin ich blöd.

Da hat tatsächlich ein SQL.Clear gefehlt.

Das ist nicht das erste mal, dass ich sowas übersehe.

Aber Vielen Dank.
Der Fehler sitzt immer vor dem Bildschirm.
  Mit Zitat antworten Zitat
Benutzerbild von BeerBear
BeerBear

Registriert seit: 23. Aug 2005
Ort: Lübeck
85 Beiträge
 
#8

Re: Fehler in SQL Statement?

  Alt 24. Okt 2005, 11:24
Ich hätte da nochmal einen.

Und zwar:

Ungültiges Schlüsselwort
Symbol-String: (+)
Zeilennummer 6

Delphi-Quellcode:
with Query_Verteiler do
    begin
      SQL.Clear;
      SQL.Add( 'select VT.*, A.QM_ABTEILUNG ' );
      SQL.Add( ' from ');
      SQL.Add( ' REK_VERT VT, QM_ABT A ' );
      SQL.Add( ' where ' );
      SQL.Add( ' ( REKVT_REK_ID = :inREK_ID ) and ' );
      SQL.Add( ' ( REKVT_TYP = :TYP ) and ( REKVT_ABT_ID = A.QM_ABT_ID (+) )' );
      SQL.Add( ' order by ' );
      SQL.Add( ' QM_ABTEILUNG, REKVT_MA_NAME ');
      ParamByName( 'inREK_ID' ).DataType := ftInteger;
      ParamByName( 'TYP'    ).DataType := ftString;
      ParamByName( 'TYP'    ).asString := 'V';
    end;
Die Fehlerbeschreibung ist ja schon sehr präzise, dennoch hab ich keine Ahnung warum der Fehler auftritt.
Der Fehler sitzt immer vor dem Bildschirm.
  Mit Zitat antworten Zitat
dfried

Registriert seit: 16. Aug 2005
486 Beiträge
 
#9

Re: Fehler in SQL Statement?

  Alt 24. Okt 2005, 11:30
Zitat von BeerBear:
Ich hätte da nochmal einen.

Und zwar:

Ungültiges Schlüsselwort
Symbol-String: (+)
Zeilennummer 6
Das ist kein Fehler, das ist die verkürzte Kennzeichnung eines Outer-Joins unter ORACLE.
  Mit Zitat antworten Zitat
Benutzerbild von BeerBear
BeerBear

Registriert seit: 23. Aug 2005
Ort: Lübeck
85 Beiträge
 
#10

Re: Fehler in SQL Statement?

  Alt 24. Okt 2005, 11:37
Zitat von dfried:
Das ist kein Fehler, das ist die verkürzte Kennzeichnung eines Outer-Joins unter ORACLE.
Ich weiß, aber ich bekomme die Fehlermeldung.
Also scheint mit dem SQL statement etwas nicht zu stimmen.
Der Fehler sitzt immer vor dem Bildschirm.
  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 20:19 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