![]() |
Datenbank: ADS • Version: 10.10 • Zugriff über: Delphi 2009
SQL Abfrage funktioniert im Data Architect, in Query von Delphi nicht
Hallo zusamme,
habe mir einen SQL im Data-Architect zusammengebaut und getestet. Er wird erfolgreich ausgeführt und zeigt mir meine gewünschten Datensätze an. Füge ich diesen SQL nun auch in meiner ADSQuery in Delphi ein, funktioniert er nicht mehr.
Code:
Folgenden Fehler erhalte ich, nur kann ich nicht verstehen wieso? Im Data Architect läuft die Abfrage ja schließlich auch ohne Probleme.
SELECT
Buchungsdatei.Datum, Personal.ID, Personal.Name, Personal.Vorname, F.MinToHour(B_Ergebnisse.Pause) as Pause, F.MinToHour(B_Ergebnisse.Mehrarbeit) as Mehrarbeit, F.MinToHour(B_Ergebnisse.Tagesnetto) as Tagesnetto, min(Buchungen.Me1), max(Buchungen.Me2), sum(CASE WHEN Buchungen.AuftragNr IS NULL THEN 0 ELSE BSumme END) BSumme FROM (((((Personal Personal LEFT OUTER JOIN Abteilungen Abteilungen ON Personal.ID_Abteilungen = Abteilungen.ID) LEFT OUTER JOIN Buchungsdatei Buchungsdatei ON Personal.ID = Buchungsdatei.ID_Personal) LEFT OUTER JOIN Buchungen Buchungen ON Buchungsdatei.ID_Personal = Buchungen.ID_Personal AND Buchungsdatei.Datum = Buchungen.Datum) LEFT OUTER JOIN FEHLTAGEDEFINITION FEHLTAGEDEFINITION ON Buchungsdatei.Fehltag = FEHLTAGEDEFINITION.Kuerzel) LEFT OUTER JOIN B_Ergebnisse B_Ergebnisse ON Buchungsdatei.ID = B_Ergebnisse.ID_Buchungsdatei) Where Buchungsdatei.Datum >= '01.08.2011' and Buchungsdatei.Datum <= '30.08.2011' and Personal.ID = 88 group by Buchungsdatei.Datum, Personal.ID, Personal.Name, Personal.Vorname, Pause, Mehrarbeit, Tagesnetto ERROR IN SCRIPT: poQuery: Error 7200: AQE Error: State = S0000; NativeError = 2124; [iAnywhere Solutions][Advantage SQL Engine]Invalid operand for operator: >= [Invalid DATE] -- Location of error in the SQL statement is: 988 (line: 22 column: 21) |
AW: SQL Abfrage funktioniert im Data Architect, in Query von Delphi nicht
Ich hatte das schon in dem anderen Thread geschrieben: Die Datumsliterale anpassen.
Code:
Ich seh da auch noch den 30. August kritisch, dieser Monat hat 31 Tage oder ist das Absicht? Und optimierter ginge es dann
Where Buchungsdatei.Datum >= '2011-08-01' and Buchungsdatei.Datum <= '2011-08-30' and Personal.ID = 88
Code:
Where Buchungsdatei.Datum between '2011-08-01' and '2011-08-30'
and Personal.ID = 88 |
AW: SQL Abfrage funktioniert im Data Architect, in Query von Delphi nicht
Moin , Moin,
das Problem scheint Deine Where Bedingung zu sein..... versuche es mal mit einem between und stelle sicher das die Datumsformat passen. Gruß Michael : Ups Union war schneller..... |
AW: SQL Abfrage funktioniert im Data Architect, in Query von Delphi nicht
Da das SQL-Statement der Query ja wahrsch. als String übergeben wird. Wie stehts um die Maskierung der Hochkommata?
|
AW: SQL Abfrage funktioniert im Data Architect, in Query von Delphi nicht
Alternativ, wenn Du weiter mit landesspezifischen Datumsstrings arbeiten willst: TAdsSettings.DateFormat entsprechend setzen, so wie Du es ja wahrscheinlich auch im ARC unter den Optionen getan hast (oder sich ARC aus TFormatSettings geholt).
Kann ich aber nicht empfehlen - Du kriegst damit Deine Programme schwer über die Grenze ;) |
AW: SQL Abfrage funktioniert im Data Architect, in Query von Delphi nicht
BINGO, das wars!!
Zitat:
Hab dann die TAdsSettings Komponente auf die Form gezogen und mit dem gewünschten Datumsformat weitergearbeitet. Besten Dank ... MfG David und Ein schönes Wochenende ! |
AW: SQL Abfrage funktioniert im Data Architect, in Query von Delphi nicht
Und wieder mal ein Beispiel wo man durch Verwendung von parametrisierten Abfragen dieses Problem gar nicht gehabt hätte ...
|
AW: SQL Abfrage funktioniert im Data Architect, in Query von Delphi nicht
Code:
Ja, das macht immer wieder Freude...
Datum := '01.01.01;Drop table Buchungensdatei;'
|
AW: SQL Abfrage funktioniert im Data Architect, in Query von Delphi nicht
Zitat:
Das to_date in oracle nervt mich zwar immer wieder, aber da werde ich immer wieder darauf gestoßen wieviele Möglichkeiten ich hätte wenn ich nur wollte. Gruß K-H |
AW: SQL Abfrage funktioniert im Data Architect, in Query von Delphi nicht
Muss nochmal etwas nachfragen, komme einfach nicht auf die Lösung.
Code:
Mit diesem SQL zeigt er mir aber wieder nur die Tage im Monat an, für die ein Auftraggeber hinterlegt worden ist. Der SQL soll mir aber alle Tage anzeigen. An Tagen wo kein Auftraggeber hinterlegt ist, soll das Feld eben freigelassen werden.
SELECT
Buchungsdatei.Datum, Personal.ID, Personal.Name, Personal.Vorname, F.MinToHour(B_Ergebnisse.Pause) as Pause, F.MinToHour(B_Ergebnisse.Mehrarbeit) as Mehrarbeit, F.MinToHour(B_Ergebnisse.Tagesnetto) as Tagesnetto, min(Buchungen.Me1), max(Buchungen.Me2), sum(CASE WHEN Buchungen.AuftragNr IS NULL THEN 0 ELSE BSumme END) BSumme, Auftraggeber.Name // --> Name des Auftraggebers FROM (((((((Personal Personal LEFT OUTER JOIN Abteilungen Abteilungen ON Personal.ID_Abteilungen = Abteilungen.ID) LEFT OUTER JOIN Buchungsdatei Buchungsdatei ON Personal.ID = Buchungsdatei.ID_Personal) LEFT OUTER JOIN Buchungen Buchungen ON Buchungsdatei.ID_Personal = Buchungen.ID_Personal AND Buchungsdatei.Datum = Buchungen.Datum) Left outer join auftrag a on Buchungen.Id_Auftrag = a.id) // --> meine zwei joins, mit denen ich mir den Namen des Auftraggebers ermittel Left Outer join Auftraggeber Auftraggeber on a.ID_Auftraggeber = Auftraggeber.Id) // -->2ter join LEFT OUTER JOIN FEHLTAGEDEFINITION FEHLTAGEDEFINITION ON Buchungsdatei.Fehltag = FEHLTAGEDEFINITION.Kuerzel) Left OUTER JOIN B_Ergebnisse B_Ergebnisse ON Buchungsdatei.ID = B_Ergebnisse.ID_Buchungsdatei) Where Buchungsdatei.Datum >= '01.08.2011' and Buchungsdatei.Datum <= '30.08.2011' and Personal.ID = 88 and Auftraggeber.Name = 'Test GmbH' group by Buchungsdatei.Datum, Personal.ID, Personal.Name, Personal.Vorname, Pause, Mehrarbeit, Tagesnetto,Auftraggeber.Name // -->gruppieren nach Auftraggeber Bevor ich diese 2 joins eingefügt habe, zeigte er mir noch für alle Tage werte an, nicht nur für Tage an denen auch gearbeitet worden ist. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:41 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