![]() |
Datenbank: Firebird • Version: 1.5/2.0 • Zugriff über: IBObjects
Firebird mit IBObjects
Hallo,
ich ärgere mich gerade mal wieder mächtig. Ein Anwendung bringt an einer Stelle Fehler, die schon ewig funktionierte. Ich habe ein Query , Datasource und ein Grid. Die Anweisung
Delphi-Quellcode:
bringt mir immer ein Zugriffsfehler.
Select A.Fild, B.Field, C.Field from FILE A
left outer Join FILE1 B on(B.ID = A.ID) left outer Join FILE2 C on(C.ID = A.ID) Where ... Das erste Feld des zweiten Join wird nicht gefunden. Es kommt die Meldung C.Field nicht vorhanden. Tausche ich die Reihenfolge der Join, dann verschiebt sich der Fehler. B.Field wird nicht gefunden. Das Projekt hat schon ewig funktioniert, der Fehler taucht erst jetzt auf. Kopiere ich die Abfrage in IBExperts, dann liefert sie mir die korrekte Ergebnismenge. Hat wer so etwas schon mal gehabt? Mit Gruß Peter |
Re: Firebird mit IBObjects
Hat keiner eine Idee, woran es liegen kann, das plötzlich keine kaskadierten Joins mehr gehen.
Ich habe ein kleines Testprogramm geschrieben, welches den Fehler bereits im Entwurfsmodus bringt. Wenn wer mit FB 2.0 und IBObjects arbeitet und könnte das Programm mal ausprobieren? Mit Gruß Peter |
Re: Firebird mit IBObjects
Zitat:
Gruß Thomas |
Re: Firebird mit IBObjects
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
Der Fehler kommt bereits im Entwurfsmodus. Aber interessanter Weise kommt der Fehler nur, wenn die Query mit dem Grid verbunden ist. Trenne ich die Verbindung, egal an welcher Stelle, dann geht es. Wie gesagt diese Stelle geht bereits seit 100 Jahren. Der Fehler kam beim letzten Compilieren mit D2006 und das betroffene Modul war garnicht geöffnet. Gruß Peter (Anmerkung die Datenbank ist aus Platzgründen leer.) |
Re: Firebird mit IBObjects
Hallo Hans Peter,
habe mir die Sourcen heruntergeladen und extra deinetwegen FB2 installiert! Wenn du in deinem SQL Statement die Klammern weglaesst dann funzt es auch! Hier das veraenderte Statement:
SQL-Code:
Habe es mit FB 2.0 Classicserver, IBO 46 und D2006 Architect ausprobiert.
SELECT S.SID,S.SPID,S.SRID,S.STARTFOLGE,
S.SHAKEN,S.SABTEILUNG,S.FIXPLATZ,P.KOPFNR, P.PNAME,R.RNAME,R.VEREIN,R.NATION FROM START S LEFT OUTER JOIN PFERD P ON S.SPID=P.PID LEFT OUTER JOIN REITER R ON S.SRID=R.RID WHERE SPRUEFUNG = 3 ORDER BY S.STARTFOLGE Gruß DD |
Re: Firebird mit IBObjects
Sorry double posting
|
Re: Firebird mit IBObjects
Vielen Dank für Deine Bemühungen.
Ich komme erst am Donnerstag dazu das auszuprobieren. Wäre schon komisch. Da wurde in IBObjects sicherlich was geändert. Ich habe das auch mit FB 1.5 probiert. Da kommt der gleiche Fehler. Das Projekt funktioniert schon mehre Jahre. Hoffentlich sind nicht noch weitere Inkompatibilitäten in den neueren Versionen. Ineressanter Weise tritt ja dieser Fehler nur auf, wenn ein Grid mit der Query verbunden ist. Also nochmals tausend Dank für Deine Unterstützung. Mit Gruß Peter |
Re: Firebird mit IBObjects
Hallo Hanspeter!
Die Klammersetzung ist es nicht ganz. Dein Statement sieht so aus:
SQL-Code:
Da fehlt schlicht und ergreifend ein Leerzeichen zwischen dem on und der (.
Select S.SID,S.SPID,S.SRID,S.STARTFOLGE,S.SHAKEN,S.SABTEILUNG,S.FIXPLATZ,P.KOPFNR,
P.PNAME,R.RNAME,R.VEREIN,R.NATION FROM START s left outer join PFERD p on(S.SPID=p.PID) left outer Join Reiter r on(S.SRID=r.RID) WHERE SPRUEFUNG = 3 ORDER BY s.STARTFOLGE Ich gehe mal davon aus, dass Jason den Parser für Firebird angepasst hat. In älteren Versionen hat er das Fehlen des Leerzeichens tolleriert. Gruß Thomas |
Re: Firebird mit IBObjects
Zitat:
Das Verhalten sollte nicht dem SQL Standard entsprechen. Schaut man im Quelltext nach, dann wird nicht der Tabellenname sondern das Wort Join als Tabellenname geparst. Ich habe Jason ein email geschrieben. Er hat geantwortet: This is a parsing problem. get my latest 4.7 beta release and test it to see what happens. I'd like to know if I have already resolved it. I gutted out my parser and put it back together with the new features I needed for Firebird 2.0. I won't say I rewrote it, but that wouldn't be a huge exaggeration. Also ist das Problem erst mal erledigt bzw. in Arbeit. Gruß Peter |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:28 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 by Thomas Breitkreuz