![]() |
Datenbank: Microsoft SQL • Version: 2005 • Zugriff über: .
SELECT-Statement in Delphi falsch, aber in Konsole richtig
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:
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)"
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; 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ß. :oops: Sowas kommt davon, wenn der Ausbilder im Urlaub ist. ;) |
AW: SELECT-Statement in Delphi falsch, aber in Konsole richtig
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. |
AW: SELECT-Statement in Delphi falsch, aber in Konsole richtig
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 + ... |
AW: SELECT-Statement in Delphi falsch, aber in Konsole richtig
Zitat:
Ich verstehe Tabelle2 und pb_orga eigentlich als zwei verschiedene Tabellen. @Codewalker: Sry, bringt nix. Er sagt immer noch "line1". -.- |
AW: SELECT-Statement in Delphi falsch, aber in Konsole richtig
Zeilenumbruch = #13#10 oder sLinebreak!
|
AW: SELECT-Statement in Delphi falsch, aber in Konsole richtig
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. |
AW: SELECT-Statement in Delphi falsch, aber in Konsole richtig
Zitat:
Zitat:
|
AW: SELECT-Statement in Delphi falsch, aber in Konsole richtig
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) |
AW: SELECT-Statement in Delphi falsch, aber in Konsole richtig
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 |
AW: SELECT-Statement in Delphi falsch, aber in Konsole richtig
Dann wird auch nur ein Linebreak eingefügt.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:30 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz