![]() |
Datenbank: alle • Version: 0.0 • Zugriff über: FireDAC
Vorsicht bei AnyDAC > FireDAC Migration mit reFind
Ich musste ein älteres XE2 Projekt ausgraben, um ein paar kleine Anpassungen für einen zu machen.
XE5 ist die einzige Delphi Version, die ich auf meinem Entwicklungssystem habe. EMBT hat die FireDAC Komponenten (ehemals AnyDAC) ab XE5 mit einem neuen Präfix versehen und auch die Units umbenannt. Die Komponenten hießen vor XE5 "TAD<irgendwas>" und die Units "uAD<irgendwas>" (entsprechend der alten AnyDAC Namenskonvention). Seit XE5 haben die FireDAC Komponenten den Präfix "TFD ..." und auch die Unitnamen folgen einem anderen Schema. Als Migrationshilfe liefert EMBT ab Werk das Tool "reFind" mit Delphi XE5 aus. Es soll alle AnyDAC Komponenten und Unitnamen im Projekt durch die entsprechenden FireDAC Komponentennamen ersetzen. Am Ende war die "kleine Anpassung" mit reFind ein riesiger Aufwand. Damit ihr nicht auch auf die Nase fallt oder euch zumindest darauf einstellen könnt, möchte ich hier alle gefundenen Fallstricke zusammentragen. siehe DocWiki: ![]() Das reFind Tool hat keinerlei Intelligenz. Es macht ein "stumpfsinniges" RegEx Search&Replace und ersetzt im Source alle Vorkommen von "AD" durch "FD" (auch in den DFMs). Zusätzlich ersetzt es die AnyDAC Unitnamen. Thumbs up für dieses Meisterwerk des Software Engineerings! :thumb: Resultat: - alle Variablen und Konstanten die zufällig ein "aD" enthielten sind umbenannt
Delphi-Quellcode:
var aDetailView: TDetailView
wird zu var FDetailView: TDetailView
Delphi-Quellcode:
und so weiter.
procedure setDummy(aDummy :TDummy);
begin FDummy := aDummy; end; wird zu procedure setDummy(FDummy :TDummy); begin FDummy := FDummy; // >> -- Pfff end; Fast alle Glyphs und Images, die in den DFMs eingebettet waren, sind zerschossen, weil im Hex Code der Bilder schon einige "AD"s vorkamen, die durch reFind durch FD ersetzt wurden. Captions wurden ebenfalls ersetzt.
Code:
.
"Bitte fragen Sie Ihren FDministrator"
Großes Kino, dieses Migrationstool. Die Korrektur des XE5 Projektes hat mich einen glatten Arbeitstag gekostet. reFind ist also mit viel viel Vorsicht zu genießen! |
AW: Vorsicht bei AnyDAC > FireDAC Migration mit reFind
Beileid und Danke für den Hinweis!
Meisterhaft gemacht, das schafft keine Freeware schlechter. Sherlock |
AW: Vorsicht bei AnyDAC > FireDAC Migration mit reFind
Ist natürlich wirklich ein A**ch voll Arbeit. Nur meine Frage an dich: Hattest du nicht vorher eine Sicherung des Projektes angelegt? So mache ich es zumindest immer wenn solch große Änderungen vorgenommen werden. Dann hättest du die Sicherung zurückspielen und ggf. die Unitnamen und Komponentennamen selbst ersetzen können. Ist natürlich so ziemlich blöd gelaufen. :?
|
AW: Vorsicht bei AnyDAC > FireDAC Migration mit reFind
Ne. Ich wollte "nur schnell" den hart codierten Geschäftsführernamen ändern. Das war für mich keine große Änderung. Dem Tool habe ich genauso vertraut, wie ich es bei dem "Project Upgrade Wizard" von DevExpress mache.
Gegen 15:00 Uhr habe ich dann festgestellt, dass reFind ".Bak" Dateien anlegt :(. Da war ich schon fast mit meinen Korrekturen durch... (Ich weis. Oberdussel ... :oops:) Dafür brauche ich hier keinen extra Beifall :) |
AW: Vorsicht bei AnyDAC > FireDAC Migration mit reFind
Zitat:
|
AW: Vorsicht bei AnyDAC > FireDAC Migration mit reFind
Das war der Grund, warum wir damals ein eigenes Tool zur Komponenten-Ersetzung geschrieben hatten. Das arbeitet nämlich typ-sicher und wird durch Skripte gesteuert.
|
AW: Vorsicht bei AnyDAC > FireDAC Migration mit reFind
Zitat:
|
AW: Vorsicht bei AnyDAC > FireDAC Migration mit reFind
Rein aus Interesse: XE5 Hotfix 4 installiert oder nicht?
![]() This Hotfix provides an updated reFind.exe which can be found in the bin folder. [...] |
AW: Vorsicht bei AnyDAC > FireDAC Migration mit reFind
Zitat:
reFind hat bei mir die Dateiversion 19.0.14356.6604 [EDIT] Nein, war noch nicht drauf. Die Version aus dem Hotfix 4 ist neuer. In der Readme gibt es allerdings keine richtigen Infos, was die neue Version anders macht. Das Einzige was ich dort rauslesen konnte: Unitnamen kann das Tool jetzt auch kaputtmachen :) |
AW: Vorsicht bei AnyDAC > FireDAC Migration mit reFind
Und ich hatte in meinem ersten Beitrag noch im Zweifel zu Dir gehalten :lol:
So muss ich jetzt doch noch mein rausgestrichenes "Warum hast Du nicht einfach ein Update auf den letzten Projektstand gemacht, und eben schnell nochmal angefangen?" nachschieben. Oder hast Du etwa keine Versionsverwaltung? 8-) Aber nachtreten, wenn einer am Boden liegt, machen nur U-Bahn Schläger... Du hast uns vor dem gleichen Fehler bewahrt. Sherlock |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:13 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