AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken SELECT-Statement in Delphi falsch, aber in Konsole richtig
Thema durchsuchen
Ansicht
Themen-Optionen

SELECT-Statement in Delphi falsch, aber in Konsole richtig

Ein Thema von Maya · begonnen am 3. Nov 2011 · letzter Beitrag vom 4. Nov 2011
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    
Benutzerbild von Maya
Maya

Registriert seit: 15. Jun 2011
Ort: Potsdam-Mittelmark
107 Beiträge
 
Delphi 2010 Enterprise
 
#1

SELECT-Statement in Delphi falsch, aber in Konsole richtig

  Alt 3. Nov 2011, 11:45
Datenbank: Microsoft SQL • Version: 2005 • Zugriff über: .
Hallo ihr Lieben,

mir ist gerade ein Problem untergekommen, welches weder mir noch Kollegen untergekommen ist.
Ich hab ein aufwendiges SQL-Statement in der Konsole von MS SQL geschrieben, welches auch nach einen Tag dann so funktionierte, wie ich es mir wünschte.
Nun wollte ich das in mein Delphi-Projekt einarbeiten:

Delphi-Quellcode:
procedure TAdressbuchMit_Frame.Mitarbeitersuche (aBedingung: String);
begin
  with PostbuchData.sdqryKEMit do
    begin
      Close;
      SQL.Clear;
      SQL.Add('SELECT [pb_mitarbeiter].[mitarbeiter_id], '+
              ' [pb_mitarbeiter].[nachname], '+
              ' [pb_mitarbeiter].[vorname], '+
              ' [pb_mitarbeiter].[org_id], '+
               ' [pb_orga].[bezeichnung], '+
              ' Tabelle2.[bezeichnung] '+
              'FROM '+
                ' (SELECT Tabelle.[org_id], '+
                  ' Tabelle.[higher_ranking], '+
              ' [pb_orga].[bezeichnung] '+
                ' FROM '+
              ' (SELECT [pb_orga].[org_id], '+
              ' [pb_orga].[bezeichnung], '+
              ' [pb_orga].[higher_ranking] '+
              ' FROM [pb_orga]) Tabelle, [pb_orga] '+
                ' WHERE [pb_orga].[org_id]=Tabelle.[higher_ranking]) '+
              ' Tabelle2 RIGHT JOIN ([pb_mitarbeiter] '+
              ' RIGHT JOIN [pb_orga] '+
              ' ON [pb_mitarbeiter].[org_id]=[pb_orga].[org_id]) '+
              ' ON Tabelle2.[org_id]=[pb_mitarbeiter].[org_id] '+
              'WHERE [pb_mitarbeiter].[mitarbeiter_id] IS NOT NULL '+ aBedingung);
      Open;
    end;
end;
Wenn ich nun versuche, dass Programm zu starten, um zu sehen, ob es so funktioniert wie ich es möchte, kommt die Fehlermeldung: "SQL Server message 208: Ungültiger Objektname 'pb_orga'.(line1)"
Ich hab schon mehrmals den Quellcode hin- und zurückkopiert und erneut in der Konsole ausprobiert, wie gesagt, da funktioniert alles super.

Ich bin wirklich ratlos und wäre froh über einen Gedankenanstoß.
Sowas kommt davon, wenn der Ausbilder im Urlaub ist.
Status:
- FIAE
- Rechteinhaberin, ein Rüsselmops sein zu wollen
  Mit Zitat antworten Zitat
jobo

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

AW: SELECT-Statement in Delphi falsch, aber in Konsole richtig

  Alt 3. Nov 2011, 11:52
Du hast Dich beim Hin und Herkopieren irgendwie vertan:
"pborga" im Select Teil ist eine Tabelle / Alias, die Du in der From clause gekapselt hast, benannt ist es dort aber als Tabelle2.
Im Join ist es ebenfalls falsch.
Gruß, Jo
  Mit Zitat antworten Zitat
Benutzerbild von Codewalker
Codewalker

Registriert seit: 18. Nov 2005
Ort: Ratingen
945 Beiträge
 
Delphi XE2 Professional
 
#3

AW: SELECT-Statement in Delphi falsch, aber in Konsole richtig

  Alt 3. Nov 2011, 11:55
Auf den ersten Blick sehe ich nichts, aber es hilft, wenn du jeweils noch Zeilenumbrüche ergänzt, damit du nicht immer den Error in Zeile 1 bekommst (in der ja das gesamte SQL steht), weil das hilft ja mal gar nicht.

Delphi-Quellcode:
('SELECT [pb_mitarbeiter].[mitarbeiter_id], '+ #10#13 +
              ' [pb_mitarbeiter].[nachname], '+ #10#13 +
              ' [pb_mitarbeiter].[vorname], '+ #10#13 + ...
  Mit Zitat antworten Zitat
Benutzerbild von Maya
Maya

Registriert seit: 15. Jun 2011
Ort: Potsdam-Mittelmark
107 Beiträge
 
Delphi 2010 Enterprise
 
#4

AW: SELECT-Statement in Delphi falsch, aber in Konsole richtig

  Alt 3. Nov 2011, 11:57
Du hast Dich beim Hin und Herkopieren irgendwie vertan:
"pborga" im Select Teil ist eine Tabelle / Alias, die Du in der From clause gekapselt hast, benannt ist es dort aber als Tabelle2.
Im Join ist es ebenfalls falsch.
Das kann nicht sein, weil wenn ich statt "pb_orga" dort oben "Tabelle2" schreibe, dann zeigt er mir zweimal die gleiche Spalte an und das ist nicht Sinn der Sache.
Ich verstehe Tabelle2 und pb_orga eigentlich als zwei verschiedene Tabellen.

@Codewalker: Sry, bringt nix. Er sagt immer noch "line1". -.-
Status:
- FIAE
- Rechteinhaberin, ein Rüsselmops sein zu wollen

Geändert von Maya ( 3. Nov 2011 um 11:59 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#5

AW: SELECT-Statement in Delphi falsch, aber in Konsole richtig

  Alt 3. Nov 2011, 11:59
Zeilenumbruch = #13#10 oder sLinebreak!
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
jobo

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

AW: SELECT-Statement in Delphi falsch, aber in Konsole richtig

  Alt 3. Nov 2011, 12:00
Das spielt aber keine Rolle, was Du darunter verstehst.
Du hast die Tabelle pbOrga nicht in der From Clause stehen, wenn ich mich nicht vertue.
Ob die Konsole (oder Codeergänzung) da (irrtümlich) mitmacht, kann ich nicht sagen, weil ich keine habe.
Gruß, Jo
  Mit Zitat antworten Zitat
Benutzerbild von Maya
Maya

Registriert seit: 15. Jun 2011
Ort: Potsdam-Mittelmark
107 Beiträge
 
Delphi 2010 Enterprise
 
#7

AW: SELECT-Statement in Delphi falsch, aber in Konsole richtig

  Alt 3. Nov 2011, 12:05
Zeilenumbruch = #13#10 oder sLinebreak!
Wie schon gehabt, er sagt trotzdem noch, dass es in Zeile 1 einen Fehler gibt.

Das spielt aber keine Rolle, was Du darunter verstehst.
Du hast die Tabelle pbOrga nicht in der From Clause stehen, wenn ich mich nicht vertue.
Ob die Konsole (oder Codeergänzung) da (irrtümlich) mitmacht, kann ich nicht sagen, weil ich keine habe.
Ich hab in jeder From-Anweisung pb_orga stehen, habe noch mal nachgeschaut. Kannst mir sehr gerne zeigen, wo du genau meint, dass sie fehlt.
Status:
- FIAE
- Rechteinhaberin, ein Rüsselmops sein zu wollen
  Mit Zitat antworten Zitat
jobo

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

AW: SELECT-Statement in Delphi falsch, aber in Konsole richtig

  Alt 3. Nov 2011, 12:08
Deine gesamte From Clause besteht nur aus einer Tabelle/Select/Alias!
Durch die Klammerung werden sämtliche Subselects innerhalb nicht mehr als eigenständige Tabellen erkannt. Da kannst Du alle Tabellen der Datenbank eintragen, ein Select darauf wird nicht funktionieren.
(Und kann auch in der Console nicht funktionieren)
Gruß, Jo
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.763 Beiträge
 
Delphi 11 Alexandria
 
#9

AW: SELECT-Statement in Delphi falsch, aber in Konsole richtig

  Alt 3. Nov 2011, 12:08
Nur nebenbei: SQL ist eine Stringliste. Mach doch für jede Zeile ein eigenes Add. Dann sind das wirklich auch getrennte Zeilen und man muss nicht auf Leerzeichen oder Carriagereturns Rücksicht nehmen.

Sherlock
Oliver
Geändert von Sherlock (Morgen um 16:78 Uhr) Grund: Weil ich es kann
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#10

AW: SELECT-Statement in Delphi falsch, aber in Konsole richtig

  Alt 3. Nov 2011, 12:09
Dann wird auch nur ein Linebreak eingefügt.
Markus Kinzler
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    


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 19:31 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