Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi SELECT-Problem in Firebird (https://www.delphipraxis.net/29515-select-problem-firebird.html)

UweR 10. Sep 2004 09:15


SELECT-Problem in Firebird
 
Hallo Leute,

ich bin gerade dabei eine bisher auf Interbase 6.0 (OpenSource) laufende Datenbank auch auf Firebird 1.5 ans Rennen zu bringen, dabei gibt es Probleme mit einer Select-Abfrage die unter Interbase anstandslos funktioniert und unter Firebird gibts ne Fehlermeldung.

Die Abfrage lautet:

SQL-Code:
SELECT
    S.SOFTVARID,
    S.ORGANO,
    O.ORGANAME || ', ' || O.ORGAPLACE || ' (' || O.ORGANO || ')' AS ORGANAME,
    S.VERSION,
    V.NAME,
    S.VARIANT,
    S.UPDATEDFROM,
    S.LASTUPDATE,
    S.REMARK,
    S.DESTTYPE
   
FROM
    SOFTVAR S, VERSION V, ORGANISATIONS O
WHERE V.versionid = s."VERSION"
AND S.ORGANO = O.ORGANO
AND DESTTYPE = :DESTTYPE;
Als Fehlermeldung kriege ich:

SQL-Code:
Undifined name.Dynamic SQL Error
SQL error Code = -204
ROWS WITH TIES reqires ORDER BY clause.
DESTTYPE
Kann sich da jemand von euch nen Reim drauf machen.

Hansa 10. Sep 2004 09:23

Re: SELECT-Problem in Firebird
 
Du hast Organame und O.Organame, das kommt mir komisch vor. Ansonsten sehe ich nichts besonderes.

Gruber_Hans_12345 10. Sep 2004 09:24

Re: SELECT-Problem in Firebird
 
Hast du denn Client richtig (und neu installiert)

Ich habe bei mir festgestellt, das zwar der alte Client meißt funktioniert, aber auf jeden fall falsche Fehlermeldungen ausgibt.

und eventuell beim "AND DESTTYPE = :DESTTYPE;" in "S.AND DESTTYPE = :DESTTYPE;"

GRuss
Hans

UweR 10. Sep 2004 10:17

Re: SELECT-Problem in Firebird
 
Erst mal Danke für die Antworten.
@Hansa:
Das mit dem ORGANAME und O.ORGANAME gehört so.

@Hans:
Das mit dem fehlenden S wars. Firebird ist da wohl etwas kleinlicher bzw. schnallt nicht das es nur eine Tabelle mit DESTTYPE gibt. Das mit den falschen Fehlermeldungen kann gut sein. Clientseitig werkelt bei mir Interbase 6.5 da ich Firebird nur serverseitig auf meiner Linux-Kiste upgedatet habe und der Client mit Delphi7 auf meinen Entwicklungsrechner draufgekommen ist.

Gruber_Hans_12345 10. Sep 2004 10:29

Re: SELECT-Problem in Firebird
 
Zitat:

Zitat von UweR
Erst mal Danke für die Antworten.
@Hansa:
Das mit dem ORGANAME und O.ORGANAME gehört so.

@Hans:
Das mit dem fehlenden S wars. Firebird ist da wohl etwas kleinlicher bzw. schnallt nicht das es nur eine Tabelle mit DESTTYPE gibt. Das mit den falschen Fehlermeldungen kann gut sein. Clientseitig werkelt bei mir Interbase 6.5 da ich Firebird nur serverseitig auf meiner Linux-Kiste upgedatet habe und der Client mit Delphi7 auf meinen Entwicklungsrechner draufgekommen ist.

Bist sicher, das deine anderen Tabellen kein DESTTYPE haben ?
Firebird geht da nicht auf die SELECT sondern auf die Felder die in den Tabellen vorhanden sind, und wenn der richtige Client drauf ist kommt dann auch eine Meldeung
"SQL error code = -204 Ambiguous field name between table KUNDEN and table PERSONEN ID"

Gruss
Hans

UweR 10. Sep 2004 10:46

Re: SELECT-Problem in Firebird
 
Hallo Hans,

Zitat:

Bist sicher, das deine anderen Tabellen kein DESTTYPE haben ?
Seit ich noch mal nachgesehen habe nicht mehr! Es kommt tatsächlich in zwei Tabellen vor und den Schwarzen Peter teile ich mir mit Interbase. Der Mecker von Firebird war berechtigt.

Lemmy 10. Sep 2004 11:02

Re: SELECT-Problem in Firebird
 
Hi Uwe,

Firebird hat in der Version 1.5 ziemlich zugelegt was diese Überprüfungen angeht. Besonders übel wird das bei Stored Procedures die unter IB/FB1.0x noch laufen, in FB1.5 aber Fehler produzieren, aber letztendlich macht es FB 1.5 völlig korrekt.

Noch was zum Client: Kopier Dir doch in den Ordner wo Du Dein Clientprogramm (z.B. IBOConsole o.ä.) hast die FBclient.dll rein und benenne sie nach gds32.dll um. Damit verwendet dann diese Konsole auch die korrekte Client-Version (was auch mitunter zu Probleme führen kann!

Grüße
Lemmy

UweR 10. Sep 2004 11:23

Re: SELECT-Problem in Firebird
 
Hallo Lemmy,

Zitat:


Firebird hat in der Version 1.5 ziemlich zugelegt was diese Überprüfungen angeht. Besonders übel wird das bei Stored Procedures die unter IB/FB1.0x noch laufen, in FB1.5 aber Fehler produzieren, aber letztendlich macht es FB 1.5 völlig korrekt.

Habe ich bemerkt und wohlwollend zur Kenntnis genommen.

Wie sieht das eigentlich bei neuen Interbase-Versionen aus? Sind die mittlerweile auch etwas genauer geworden? Ich Frage deshalb einfach mal weil wir bisher zwar Interbase nutzen, aber nicht besonders intensiv und demnächst ein größeres Projekt starten wollen, uns aber noch nicht ganz schlüssig sind ob mit IB OpenSource anfangen und dann auf IB >= 7 upgraden (incl. der anfallenden Kosten) oder mit Firebird anfangen.

Zitat:

Noch was zum Client: Kopier Dir doch in den Ordner wo Du Dein Clientprogramm (z.B. IBOConsole o.ä.) hast die FBclient.dll rein und benenne sie nach gds32.dll um. Damit verwendet dann diese Konsole auch die korrekte Client-Version (was auch mitunter zu Probleme führen kann!
Das mit der DLL pro Client ist ne gute Idee. Bei IBExpert kann ich ja schließlich sogar der registrierten Datenbank die DLL zuteilen.

Lemmy 10. Sep 2004 14:54

Re: SELECT-Problem in Firebird
 
Hi,

ich habe zwar keine IB die neuer als die OpenSource ist im Einsatz (vielleicht kann Hasa da zwei Worte verlieren), aber ich würde auf gar keinen Fall mit der IB 6.0.x noch was anfangen. Die Probleme die Du bekommen kannst siehst Du ja. Verwendet gleich von Anfang an was richtiges, dann spart ihr euch später die Fehlersuche...
Grüße
Lemmy

P.S.: Durch die Firebird SQL Foundation ist übrigends ein Verein als Geldgeber vorhanden, der die Entwicklung und Dokumentation von Firebird unterstützt, das bei der Entscheidung nicht vergessen...!


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:57 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