AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi UIB Dataset und UNION
Thema durchsuchen
Ansicht
Themen-Optionen

UIB Dataset und UNION

Ein Thema von GuenterS · begonnen am 10. Sep 2007 · letzter Beitrag vom 10. Sep 2007
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von GuenterS
GuenterS

Registriert seit: 3. Mai 2004
Ort: Österreich > Bad Vöslau
760 Beiträge
 
Turbo Delphi für Win32
 
#1

UIB Dataset und UNION

  Alt 10. Sep 2007, 12:10
Datenbank: Firebird • Version: 1.5 • Zugriff über: UIB
Hallo

habe ein kleines Problemchen mit einer UNION Abfrage

Ich glaube aber nicht dass die UIB Komponenten schuld sind, da es im SQL Manager for Interbase/Firebird auch nicht funktioniert. Da scheint es im SQL Statement an Hund zu geben, den ich übersehe.

SQL-Code:
SELECT 0 AS ID, 'AS KUERZEL
UNION ALL
SELECT ADRESSENID AS ID, ADR_KUERZEL AS KUERZEL
FROM ADRESSEN
WHERE AKTUELL = 1 AND ADR_KUERZEL != 'AND ADR_KUERZEL IS NOT NULL

Erreichen möchte ich, dass ich auch ein Ergebnis mit ID = 0 und '' als Kuerzel bekomme.

Als Fehlermeldung wird mir ausgespuckt:
Zitat:
Invalid Token.
Dynamic SQL Error.
SQL error code = -104.
Invalid command.
Data type unknown.
Sieht vielleicht jemand den Fehler der sich da eingeschlichen hat?
Günter
Pünktlichkeit ist die Fähigkeit vorherzusagen um wieviel sich der Andere verspäten wird.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#2

Re: UIB Dataset und UNION

  Alt 10. Sep 2007, 12:12
Ersetz mal != durch <>
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von GuenterS
GuenterS

Registriert seit: 3. Mai 2004
Ort: Österreich > Bad Vöslau
760 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: UIB Dataset und UNION

  Alt 10. Sep 2007, 12:15
Das bringt leider nichts.

Die einzelne Unterabfrage

SQL-Code:
SELECT ADRESSENID AS ID, ADR_KUERZEL AS KUERZEL
FROM ADRESSEN
WHERE AKTUELL = 1 AND ADR_KUERZEL != 'AND ADR_KUERZEL IS NOT NULL
Funktioniert ja auch, denke eher dass es was mit dem Union zu tun hat, bzw. des ersten Selects, das funktioniert nämlich auch nicht alleine wie ich eben feststellen musste...

Wenn ich nur
SELECT 0 AS ID, 'AS KUERZEL ausführen möchte, schreibt er mir

Zitat:
Can't Prepare , because query is empty
Günter
Pünktlichkeit ist die Fähigkeit vorherzusagen um wieviel sich der Andere verspäten wird.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#4

Re: UIB Dataset und UNION

  Alt 10. Sep 2007, 12:17
Und wenn Du vor die UNION-Zeile noch ein FROM Adressen einfügst?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von GuenterS
GuenterS

Registriert seit: 3. Mai 2004
Ort: Österreich > Bad Vöslau
760 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: UIB Dataset und UNION

  Alt 10. Sep 2007, 12:18
Wenn ich das mache, funktionieren beide Abfragen für sich alleine gut. Mit Union bekomme ich aber Fehlermeldung aus dem ersten Post.
Günter
Pünktlichkeit ist die Fähigkeit vorherzusagen um wieviel sich der Andere verspäten wird.
  Mit Zitat antworten Zitat
Benutzerbild von dataspider
dataspider

Registriert seit: 9. Nov 2003
Ort: 04539 Groitzsch
1.351 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: UIB Dataset und UNION

  Alt 10. Sep 2007, 12:36
Hi,

IMHO müsste die erste Zeile so lauten:
SELECT 0 AS ID, 'AS KUERZEL from rdb$database ... Frank
Frank Reim
  Mit Zitat antworten Zitat
Benutzerbild von dataspider
dataspider

Registriert seit: 9. Nov 2003
Ort: 04539 Groitzsch
1.351 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: UIB Dataset und UNION

  Alt 10. Sep 2007, 12:42
habe es mal probiert, man muss noch casten:

SELECT cast(0 as integer) AS ID, cast('as varchar(40)) AS kuerzel from rdb$database [EDIT] du solltest natürlich das casting den Felddefinitionen deiner Tabelle Adressen anpassen [/EDIT]

Cu, Frank
Frank Reim
  Mit Zitat antworten Zitat
Benutzerbild von GuenterS
GuenterS

Registriert seit: 3. Mai 2004
Ort: Österreich > Bad Vöslau
760 Beiträge
 
Turbo Delphi für Win32
 
#8

Re: UIB Dataset und UNION

  Alt 10. Sep 2007, 12:44
und für was steht rdb$database? Ändern tuts jedenfalls nix am Fehler.

Habe es folgendermaßen umgebaut

SQL-Code:
SELECT DISTINCT 0 AS ID, 'AS KUERZEL FROM RDB$DATABASE
UNION
SELECT ADRESSENID AS ID, ADR_KUERZEL AS KUERZEL
FROM ADRESSSEN
WHERE AKTUELL = 1 AND ADR_KUERZEL != 'AND ADR_KUERZEL IS NOT NULL

/Nachtrag:
Aufs Casting ists angekommen
Günter
Pünktlichkeit ist die Fähigkeit vorherzusagen um wieviel sich der Andere verspäten wird.
  Mit Zitat antworten Zitat
Benutzerbild von dataspider
dataspider

Registriert seit: 9. Nov 2003
Ort: 04539 Groitzsch
1.351 Beiträge
 
Delphi 11 Alexandria
 
#9

Re: UIB Dataset und UNION

  Alt 10. Sep 2007, 12:48
Zitat von GuenterS:
und für was steht rdb$database?
wird immer benutzt, wenn man genau einen Datensatz benötigt, da diese Sytemtabelle genau einen Datensatz enthält.

Union verbindet mehrere Selects, und der erste select muss natürlich vollständig sein.

Mit dem cast (siehe Beitrag über deinem) sollte es gehen.

[EDIT]
ich denke, so....
SQL-Code:
SELECT cast(0 as integer) AS ID, cast('as varchar(1)) AS KUERZEL FROM RDB$DATABASE
UNION ALL
SELECT ADRESSENID AS ID, ADR_KUERZEL AS KUERZEL
FROM ADRESSSEN
WHERE AKTUELL = 1 AND ADR_KUERZEL <> 'AND ADR_KUERZEL IS NOT NULL
[/EDIT]

Cu, Frank
Frank Reim
  Mit Zitat antworten Zitat
Benutzerbild von GuenterS
GuenterS

Registriert seit: 3. Mai 2004
Ort: Österreich > Bad Vöslau
760 Beiträge
 
Turbo Delphi für Win32
 
#10

Re: UIB Dataset und UNION

  Alt 10. Sep 2007, 13:02
Super so geht es auch Danke

Jetzt wollt ichs nur noch sortieren und habe unten ein ORDER BY ADR_KUERZEL ASC angefügt... irgendwie mag das nicht.
Günter
Pünktlichkeit ist die Fähigkeit vorherzusagen um wieviel sich der Andere verspäten wird.
  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 21:53 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