AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Unterstützt Firebird in Views nicht alle Funktionen / Konstanten ?
Thema durchsuchen
Ansicht
Themen-Optionen

Unterstützt Firebird in Views nicht alle Funktionen / Konstanten ?

Ein Thema von jensw_2000 · begonnen am 27. Feb 2013 · letzter Beitrag vom 27. Feb 2013
Antwort Antwort
jensw_2000
(Gast)

n/a Beiträge
 
#1

Unterstützt Firebird in Views nicht alle Funktionen / Konstanten ?

  Alt 27. Feb 2013, 17:04
Datenbank: Firebird • Version: 2.1 • Zugriff über: SQL
Hi,

ich habe eine komplexere Abfrage gebaut, die ich dem Kunden nun als View in der Firebird DB zur Verfügung stellen möchte
Die Abfrage wird fehlerfrei ausgeführt und bringt die erwarteten Ergebnisse.

Die SQL Syntax sieht exemplarisch so aus ...

Code:
SELECT ich, du, er, sie, es, Jahr, Monat, Woche, TEST
FROM

SELECT
     ich, du, er, sie, es,
     EXTRACT(YEAR FROM DATUM) as Jahr,
     EXTRACT(MONTH FROM DATUM) as Monat,
     EXTRACT(WEEK FROM DATUM) as Woche,
     LEFT(Nachname,3) as TEST
FROM TABLE1

UNION ALL

SELECT
     ich, du, er, sie, es,
     EXTRACT(YEAR FROM DATUM) as Jahr,
     EXTRACT(MONTH FROM DATUM) as Monat,
     EXTRACT(WEEK FROM DATUM) as Woche,
     LEFT(Surname,3) as TEST
FROM TABLE2

UNION ALL

SELECT
     '' as ich, du, er, sie, es,
     EXTRACT(YEAR FROM DATUM) as Jahr,
     EXTRACT(MONTH FROM DATUM) as Monat,
     EXTRACT(WEEK FROM DATUM) as Woche,
     '' as TEST
FROM TABLE3
)
Wie gesagt, die Abfrage funktioniert, aber den DDL Code für den VIEW kann ich nicht commiten.

Code:
CREATE VIEW TESTVIEW
(ich, du, er, sie, es, Jahr, Monat, Woche, TEST)
AS
SELECT ich, du, er, sie, es, Jahr, Monat, Woche, TEST
FROM

SELECT
     ich, du, er, sie, es,
     EXTRACT(YEAR FROM DATUM) as Jahr,
     EXTRACT(MONTH FROM DATUM) as Monat,
     EXTRACT(WEEK FROM DATUM) as Woche,
     LEFT(Nachname,3) as TEST
FROM TABLE1

UNION ALL

SELECT
     ich, du, er, sie, es,
     EXTRACT(YEAR FROM DATUM) as Jahr,
     EXTRACT(MONTH FROM DATUM) as Monat,
     EXTRACT(WEEK FROM DATUM) as Woche,
     LEFT(Surname,3) as TEST
FROM TABLE2

UNION ALL

SELECT
     '' as ich, du, er, sie, es,
     EXTRACT(YEAR FROM DATUM) as Jahr,
     EXTRACT(MONTH FROM DATUM) as Monat,
     EXTRACT(WEEK FROM DATUM) as Woche,
     '' as TEST
FROM TABLE3
);
Der Firebird Precompiler sagt mir, dass "EXTRACT(W" unbekannt ist.
Die Konstante "WEEK" wird nicht aufgelöst ... Wenn ich statt WEEK testweise DAY oder YEAR einsetze, dann kommt die Meldung nicht.

Als zweite Meldung kommt danach, dass "LEFT(" unbekannt ist.


Warum klappt das nicht?
Was macht Firebird anders, dass ein funktionierender SELECT in einem CREATE VIEW DDL-Statement auf einmal nicht mehr funktioniert?

Grüße
Jens

Geändert von jensw_2000 (27. Feb 2013 um 18:31 Uhr)
  Mit Zitat antworten Zitat
tsteinmaurer

Registriert seit: 8. Sep 2008
Ort: Linz, Österreich
530 Beiträge
 
#2

AW: Unterstützt Firebird in Views nicht alle Funktionen / Konstanten ?

  Alt 27. Feb 2013, 17:36
Liegt es vielleicht daran, dass du in der äußeren Feldliste KW und in der inneren Feldliste Woche verwendest?
  Mit Zitat antworten Zitat
jensw_2000
(Gast)

n/a Beiträge
 
#3

AW: Unterstützt Firebird in Views nicht alle Funktionen / Konstanten ?

  Alt 27. Feb 2013, 18:28
Nein.
Sorry, das war wie gesagt nur ein kurz er Beispielcode (mit Tippfehlern ).
Habe es oben korrigiert.

Wo sitzt eigentlich der Precompiler?
In der FBClient.dll?

Geändert von jensw_2000 (27. Feb 2013 um 18:38 Uhr)
  Mit Zitat antworten Zitat
jensw_2000
(Gast)

n/a Beiträge
 
#4

AW: Unterstützt Firebird in Views nicht alle Funktionen / Konstanten ?

  Alt 27. Feb 2013, 19:07
OK, das liegt irgendwie am EMS SQL-Manager oder an der FBClient.DLL.

Ich habe den DDL Code eben noch mal von einem anderen Rechner über eine AnyDAC Connection abgeschickt.
Und... Der View ist da und funktioniert.
  Mit Zitat antworten Zitat
tsteinmaurer

Registriert seit: 8. Sep 2008
Ort: Linz, Österreich
530 Beiträge
 
#5

AW: Unterstützt Firebird in Views nicht alle Funktionen / Konstanten ?

  Alt 27. Feb 2013, 19:43
Kann natürlich sein, dass der EMS SQL Manager eine Art Syntaxüberprüfung macht, die nichts als solches mit Firebird zu tun hat. Eine gute Art etwas nativ zu testen ist z.B. mit isql ausführen.
  Mit Zitat antworten Zitat
Antwort Antwort


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 05:03 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