Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Invalid cursor declaration (https://www.delphipraxis.net/192435-invalid-cursor-declaration.html)

stalkingwolf 18. Apr 2017 15:32

Datenbank: Firebird • Version: 2.5 • Zugriff über: TIBSQL

Invalid cursor declaration
 
Moin.

das Problem hatten wir in Delphi 6 behoben in dem wir uns selber um den Cursor gekümmert haben.
D.h die .dcu von TIBSQL gelöscht, die .pas in unseren Suchpfad gepackt und den Teil selber abgeändert.

Nun sind wir auf Delphi XE4 bzw. Berlin umgestiegen.
Nun haben wir den Fehler wieder in unseren Programmen.
Aktuell benutzen wir das TIBSQL von Delphi. Ich habe gesehen das sie was an dem Teil geändert haben, aber scheinbar kann der Cursor dennoch 2x vergeben werden.

Nun wollte ich das gleiche in XE4 machen was ich auch schon in Delphi 6 gemacht habe, doch das lässt Delphi scheinbar nicht mehr zu.
Wenn ich die .dcu lösche und die .pas selber übersetze, erhalte ich eine Fehlermeldung bei der nächsten Unit das diese mit einer anderen Version der TIBSQL.dcu übersetzt wurde.

2 Fragen dazu.

1.) Wie kann ich dies evtl umgehen?
2.) Bekomme ich den Cursor Fehler evtl anderes behoben?

Ich habe in der Delphi 6 Version den Cursor um den getTickCount erweitert. Damit war gewährleistet das ich nie den selber Cursorname erhalte.

Gruß Sven

nahpets 18. Apr 2017 17:01

AW: Invalid cursor declaration
 
Einen Fehler dieser Art
Zitat:

bei der nächsten Unit das diese mit einer anderen Version der TIBSQL.dcu übersetzt wurde.
habe ich bisher immer nur wegbekommen, indem ich alle DCUs gelöscht habe, zu denen Quelltexte vorhanden waren.

Da Du die Meldung ja (vermutlich) zu einer konkreten Unit bekommst, kannst Du natürlich auch gezielt deren DCU löschen und dann neu probieren.

Ggfls. musst Du aber weiterhin mit dem Auftreten dieses Fehlers rechnen und dann jeweils die DCU zur nächsten bemängelten Unit löschen.

Das kann schonmal ein paar Runden so weitergehen, lässt sich aber eigentlich immer beheben, es sei denn, man hat irgendwann 'ne Unit dabei, zu der man nur die DCU, aber keine Quelltexte, hat.

stalkingwolf 19. Apr 2017 13:21

AW: Invalid cursor declaration
 
das wären quasi alle IB Komponenten.
Werde ich wohl demnächst in den sauren Apfel beißen und dort einmal durchgehen.

himitsu 19. Apr 2017 14:10

AW: Invalid cursor declaration
 
Zitat:

Zitat von stalkingwolf (Beitrag 1368253)
das wären quasi alle IB Komponenten.

Und Alles, was die dann verwendet und die dann auch wieder und so weiter.
Dann vielleicht auch noch ein paar Design-Time- und Runtime-Packages neu kompilieren, wenn die IDE das auch verwendet und dann noch Packages/Komponenten von Drittanbietern und ...

nahpets 19. Apr 2017 14:35

AW: Invalid cursor declaration
 
Der von himitsu beschriebene Rattenschwanz ist leider nicht auszuschließen.

stalkingwolf 19. Apr 2017 14:49

AW: Invalid cursor declaration
 
Und es gibt dafür keine Compiler Einstellung das ihm das egal ist?

nahpets 19. Apr 2017 15:01

AW: Invalid cursor declaration
 
Das Problem liegt eher im Suchpfad.

Sind dort nur die DCUs enthalten, aber nicht die Quelltexte, so hat der Compiler (egal mit welchem Schalter) keine Chance. Er kennt halt nur die DCUs.

Ab und an hilft es bei dieser Fehlermeldung auch, einmal alles neu erstellen zu lassen. Dann sollte eigentlich jede Quelltextdatei neu kompiliert werden, unabhängig davon, ob sie nun seit dem letzten Kompilieren verändert wurde oder nicht.

Eventuell auch einfach mal die Packages, die die entsprechenden Komponenten enthalten, neu kompilieren, dann sollte zumindest das Gröbste neu gemacht worden sein.

Habe mir irgendwann angewöhnt, für alle Projekten nur einen Ausgabepfad für die DCUs einzurichten.
Dort liegt dann zwar immens viel Zeug drinne und es ist nicht unbedingt übersichtlich, aber man kann das Verzeichnis dann einfach leeren. Beim nächsten Kompilieren werden die jeweils benötigten DCUs erstellt, und der Fehler ist (meist) weg.


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