AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Firebird mit IBObjects
Thema durchsuchen
Ansicht
Themen-Optionen

Firebird mit IBObjects

Ein Thema von hanspeter · begonnen am 18. Nov 2006 · letzter Beitrag vom 24. Nov 2006
Antwort Antwort
hanspeter

Registriert seit: 26. Jul 2003
Ort: Leipzig
1.350 Beiträge
 
Delphi XE2 Professional
 
#1

Firebird mit IBObjects

  Alt 18. Nov 2006, 12:08
Datenbank: Firebird • Version: 1.5/2.0 • Zugriff über: 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:
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 ...
bringt mir immer ein Zugriffsfehler.
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
  Mit Zitat antworten Zitat
hanspeter

Registriert seit: 26. Jul 2003
Ort: Leipzig
1.350 Beiträge
 
Delphi XE2 Professional
 
#2

Re: Firebird mit IBObjects

  Alt 18. Nov 2006, 21:30
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
  Mit Zitat antworten Zitat
TBx
(Administrator)

Registriert seit: 13. Jul 2005
Ort: Stadthagen
1.891 Beiträge
 
Delphi 12 Athens
 
#3

Re: Firebird mit IBObjects

  Alt 18. Nov 2006, 21:36
Zitat von hanspeter:
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?
Hmm, dann gib doch mal her

Gruß

Thomas
Thomas Breitkreuz
Gruß Thomas
- Admin DelphiPRAXIS
- Admin Delphi-Treff
- Embarcadero MVP
  Mit Zitat antworten Zitat
hanspeter

Registriert seit: 26. Jul 2003
Ort: Leipzig
1.350 Beiträge
 
Delphi XE2 Professional
 
#4

Re: Firebird mit IBObjects

  Alt 19. Nov 2006, 08:43
Zitat von onlinekater:
Hmm, dann gib doch mal her

Gruß

Thomas
Ok ich habe das Projekt mal als Zip angehangen.
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.)
Angehängte Dateien
Dateityp: zip test_940.zip (531,8 KB, 6x aufgerufen)
  Mit Zitat antworten Zitat
DelphiDeveloper

Registriert seit: 9. Apr 2003
Ort: Köln
256 Beiträge
 
Delphi XE2 Enterprise
 
#5

Re: Firebird mit IBObjects

  Alt 20. Nov 2006, 19:39
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:
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
Habe es mit FB 2.0 Classicserver, IBO 46 und D2006 Architect ausprobiert.

Gruß
DD
  Mit Zitat antworten Zitat
DelphiDeveloper

Registriert seit: 9. Apr 2003
Ort: Köln
256 Beiträge
 
Delphi XE2 Enterprise
 
#6

Re: Firebird mit IBObjects

  Alt 20. Nov 2006, 19:41
Sorry double posting
  Mit Zitat antworten Zitat
hanspeter

Registriert seit: 26. Jul 2003
Ort: Leipzig
1.350 Beiträge
 
Delphi XE2 Professional
 
#7

Re: Firebird mit IBObjects

  Alt 21. Nov 2006, 10:01
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
  Mit Zitat antworten Zitat
TBx
(Administrator)

Registriert seit: 13. Jul 2005
Ort: Stadthagen
1.891 Beiträge
 
Delphi 12 Athens
 
#8

Re: Firebird mit IBObjects

  Alt 21. Nov 2006, 11:58
Hallo Hanspeter!

Die Klammersetzung ist es nicht ganz.

Dein Statement sieht so aus:
SQL-Code:
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
Da fehlt schlicht und ergreifend ein Leerzeichen zwischen dem on und der (.

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
Thomas Breitkreuz
Gruß Thomas
- Admin DelphiPRAXIS
- Admin Delphi-Treff
- Embarcadero MVP
  Mit Zitat antworten Zitat
hanspeter

Registriert seit: 26. Jul 2003
Ort: Leipzig
1.350 Beiträge
 
Delphi XE2 Professional
 
#9

Re: Firebird mit IBObjects

  Alt 24. Nov 2006, 09:46
Zitat von onlinekater:

Ich gehe mal davon aus, dass Jason den Parser für Firebird angepasst hat.
In älteren Versionen hat er das Fehlen des Leerzeichens tolleriert.
Hallo,
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
  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 01: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