+1 800 256 3608 (toll-free in North America) or +49 7531 90 60 10| service@combit.com

Delphi XE7 und BDE


(Manuel Schaffner) #1

In der 64-bit Kompilierung wird die BDE ausgeschaltet, in der 32er nicht. Ich möchte ich sie aber immer weg haben, da sie gar nicht mehr da ist.

Frage: Ist folgendes Auskommentieren in L20db und anderen Stellen die Lösung, oder ergeben sich dann andere Probleme?

{$ifndef WIN64}
// {$define BDEAVAILABLE}
{$define DESIGNIDEAVAILABLE}
{$endif}

Die Beispiele laufen so unter 32bit…


(Oliver Hambrecht) #2

Hallo,

ohne verfügbare BDE für XE7 ist das Databinding der VCL stark eingeschränkt.

CL und Databinding (unterstützte Komponenten):
https://www.combit.net/reporting/support/list-label-knowledgebase/knowledgebase/allgemeine-hinweise/vcl-und-databinding-unterstuetzte-komponenten/

Dann müsste vermutlich mit ADO weitergearbeitet werden (wenn möglich) oder auf das komfortable Databinding gänzlich verzichtet werden und LL mit Hilfe der eigenen Druckschleife angesteuert werden. Aber für XE7 kann man die BDE nachinstallieren:

https://www.combit.net/reporting/support/list-label-knowledgebase/knowledgebase/zusammenspiel-mit-anderen-programmen/vcl-package-mit-embarcadero-rad-studio-xe7-und-hoe/


(Manuel Schaffner) #3

Ok, danke für die Info.
Ich muss sowieso eine eigene Druckschlaufe bauen, auf die Datenbindung kann ich verzichten (ich arbeite primär serverseitig, VCL hat da sowieso nichts zu verloren).

Wichtig ist mir zu wissen, ob ich mit dem Auskommentieren irgendwann Probleme einfange, für die es keine Alternativlösung gibt, und ob es technisch zulässig ist.
(Datenbindung, Druckschleife etc. sind Komfortfunktionen, BDE ist seit 15 Jahren ein Auslaufmodell, da baue ich sicher keine neue Software drauf auf!)

Wenn ich richtig verstanden habe, gitb es bei 64Bit sowieso keine BDE-Unterstützung mehr, da müsste ich den LL-Code ja je nach Zielplattform doppelt schreiben, macht wenig Sinn, oder übersehe ich da etwas?


(Oliver Hambrecht) #4

Ja, klar: Wenn BDE in einem x64-Build nicht klappt/funktioniert wird das recht wenig bringen.

Prinzipiell würde ich aber sagen: ohne Databindung (also eigene Druckschleife) hat man mit LL die meisten Möglichkeiten - allerdings dadurch auch die meiste Arbeit - sei es für die erste passende Implementierung bis zum Nachliefern von neuen LL-Features in die eigene Druckschleife - wie bspw. Echtdatenvorschau im Designer, Drilldown etc.

Doch wenn man die *.pas Files von combit anpasst, muss man bei Updates/ServicePacks aufpassen: Denn da werden diese Files ggf. “überschrieben” und man sucht sich dann später nen “Wolf” wenn das nicht (mehr) klappen sollte.


(Manuel Schaffner) #5

Danke für die Hinweise. Combit-Files anpassen ist das letzte, was ich mir wünsche.

Was ich möchte ist ein x32-Build ohne BDE-Abhängigkeit. Wie ist das möglich?
(unter Nutzung von L20.pas etc. :slight_smile:


(Oliver Hambrecht) #6

Hallo,

um die BDE aus der VCL zu entfernen, müssen leider die jeweiligen defines auf BDEAVAILABLE in den *.pas-Files von combit auskommentiert werden. Das sollte recht übersichtlich sein, da nur wenige Stellen - hoffe ich. Man könne ja dann im eigenen Code ein IFDEF auf BDEAVAILABLE machen, damit man dann eine Warning/Error bekommen würde, wenn es wieder definiert wäre - bspw. bei einem Update/Service Pack.

Alternativ könnte man ggf. auch auf die VCL gänzlich verzichten und mit der plain native API von LL arbeiten: Hierzu würde man dann die Files cmbtLL20.pas und cmbtLS20.pas benötigen. Man müsste dann aber die DLL(s) laden/entladen, Job-Handling etc. machen - würde so auch im Handbuch unter Programmierung per API’ stehen.


(Manuel Schaffner) #7

Auskommentieren ist auch mein aktueller Ansatz, ist das Optimum von Aufwand / Ertrag :slight_smile:
Es betrifft L20DB.pas und L20PrintWorker.pas, ist übersichtlich.

Danke und tschüss