AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Delphi 6 - Probleme - Wechsel von Firebird 1.0X nach 1.5.3

Delphi 6 - Probleme - Wechsel von Firebird 1.0X nach 1.5.3

Offene Frage von "mbulm"
Ein Thema von mbulm · begonnen am 18. Mär 2006 · letzter Beitrag vom 22. Mär 2006
Antwort Antwort
mbulm

Registriert seit: 24. Apr 2005
6 Beiträge
 
#1

Delphi 6 - Probleme - Wechsel von Firebird 1.0X nach 1.5.3

  Alt 18. Mär 2006, 15:22
Datenbank: Firebird • Version: 1.5.3 • Zugriff über: IBX-Komponenten von Delphi 6
Ich habe eine Anwendung laufen unter Firebird 1.0X mit Zugriff über die IBX-Komponenten von Delphi 6! Habe in den letzten Tagen nun testweise einen neuen Firebird Server 1.5.3 eingerichtet und die Datenbanken entsprechend übernommen. Wenn ich jetzt aus meiner Anwendung auf die neue Datenbank zugreife, erhalte ich immer, wenn im SQL-Befehl "ORDER BY ..." enthalten ist, folgenden Fehler:

Dynamic SQL Error
SQL error code = -104
Invalid expression in the ORDER BY clause (not contained in either an aggregate function or the GROUP BY clause)

Wer hat eine Idee, woran das liegt und was ich jetzt tun kann? Vom IBExpert aus funktionieren die SQL-Statements auch auf der 1.5.3-Datenbank ohne Probleme!

Vielen Dank für Eure Hilfe!

Gruss mbulm
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: Delphi 6 - Probleme - Wechsel von Firebird 1.0X nach 1.5

  Alt 18. Mär 2006, 15:25
Der Fehler sagt ja aus das du bei einer gruppierten Abfrage ein Feld in der Feldliste abfragst welchse sichweder in der GROUP BY noch der WHERE-Clause befindet. Post e mal die Abfrage/Datenbankbeschr.
Markus Kinzler
  Mit Zitat antworten Zitat
mbulm

Registriert seit: 24. Apr 2005
6 Beiträge
 
#3

Re: Delphi 6 - Probleme - Wechsel von Firebird 1.0X nach 1.5

  Alt 18. Mär 2006, 16:00
Danke erstmal für die schnelle Reaktion!

Das Ganze passiert bereits bei sehr einfachen SQL-Befehlen:

select * from abs91 order by intnr

ergibt den oben beschriebenen Fehler

select * from abs91

geht ohne Fehler!

Wie gesagt alle SQL-Befehle, die aus meiner Anwendung heraus Fehler verursachen, laufen fehlerfrei im IBExpert! Ich denke, das Ganze hängt an einem Problem zwischen Firebird 1.5.3 und den IBX-Komponenten von Delphi 6, also nicht unbedingt an den SQL-Statements selbst! Eventuell hängt es auch mit der neuen GDS32.DLL zusammen, die mit der neuen Firebird-Datenbank installiert wurde!

gruss mbulm
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: Delphi 6 - Probleme - Wechsel von Firebird 1.0X nach 1.5

  Alt 18. Mär 2006, 16:10
Ich she gerade du hast ja gar kein GROUP BY sondern nur eine Sortierung. Komisch! Post mal die Tabellenbeschreibung.
Markus Kinzler
  Mit Zitat antworten Zitat
mbulm

Registriert seit: 24. Apr 2005
6 Beiträge
 
#5

Re: Delphi 6 - Probleme - Wechsel von Firebird 1.0X nach 1.5

  Alt 22. Mär 2006, 10:59
Ich muss mich korrigieren!

Das Ganze passiert bei folgendem SQL-Befehl:

select count(*) from abs91 order by intnr
(unter firebird 1.0X gab es hier keine probleme)

ergibt den oben beschriebenen Fehler

select * from abs91 order by intnr

geht ohne Fehler!

gruss mbulm
  Mit Zitat antworten Zitat
dfried

Registriert seit: 16. Aug 2005
486 Beiträge
 
#6

Re: Delphi 6 - Probleme - Wechsel von Firebird 1.0X nach 1.5

  Alt 22. Mär 2006, 11:03
Zitat von mbulm:
Ich muss mich korrigieren!

Das Ganze passiert bei folgendem SQL-Befehl:

select count(*) from abs91 order by intnr
(unter firebird 1.0X gab es hier keine probleme)
Naja, das "Order By" in dem Select macht auch nicht wirklich sinn, da das Ergebnis immer nur eine Zeile ist...
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: Delphi 6 - Probleme - Wechsel von Firebird 1.0X nach 1.5

  Alt 22. Mär 2006, 11:18
Nimm mal das ID Feld in die Count()-Funktion:

select count(ID) from abs91;
Markus Kinzler
  Mit Zitat antworten Zitat
dfried

Registriert seit: 16. Aug 2005
486 Beiträge
 
#8

Re: Delphi 6 - Probleme - Wechsel von Firebird 1.0X nach 1.5

  Alt 22. Mär 2006, 11:20
Zitat von mkinzler:
Nimm mal das ID Feld in die Count()-Funktion:

select count(ID) from abs91;
Wenn er den "Order by" weglässt (wie in deinem Beispiel), dann funktionierts auch mit dem Count(*)...
  Mit Zitat antworten Zitat
daddy

Registriert seit: 9. Sep 2005
Ort: Köln
126 Beiträge
 
Delphi 7 Enterprise
 
#9

Re: Delphi 6 - Probleme - Wechsel von Firebird 1.0X nach 1.5

  Alt 22. Mär 2006, 11:37
Die Abfrage macht eigentlich nur Sinn in einer der beiden Varianten

select IntNr, count(*) from abs91 group by IntNr order by IntNr oder

select count(*) from abs91 Im ersten Fall erhält man für jede IntNr die Zahl der zugehörigen Datensätze aufsteigend sortiert nach IntNr. Im zweiten Fall erhält man die (eine!) Zahl der Datensätze in der Tabelle. Dann macht eine Sortierung natürlich keinen Sinn.
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 11:02 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