Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Mixed joins suchen (https://www.delphipraxis.net/193900-mixed-joins-suchen.html)

MyRealName 20. Sep 2017 17:54

Datenbank: firebird • Version: 3 • Zugriff über: UniDAC

Mixed joins suchen
 
Mal 'ne Frage :

In FB3 sind ja mixed Joins nicht mehr erlaubt, also sowas wie :

Code:
SELECT A.ID, B.Name, C.Gehalt
FROM TableA A, TableB B
LEFT JOIN TableC C ON (B.Id=C.Id)
WHERE A.Id=B.Id
IN Fb 2.5 geht das noch.
Jetzt habe ich 540 Stored Procs und 300 trigger in meiner DB
Gibt es eine Möglichkeit über RegEx sowas zu suchen in einem DB Script ?

Danke

jobo 20. Sep 2017 18:18

AW: Mixed joins suchen
 
Alles was zwischen FROM und JOIN ein Komma hat?

jobo 21. Sep 2017 07:58

AW: Mixed joins suchen
 
regex:from.*,.*join
mit Modifikatoren i, s
für case insensitive und Zeilenumbrüche.

Könnte sein, dass irgendein subselect in der From Clause das bricht, aber das sind vielleicht dann nicht viele.

MyRealName 22. Sep 2017 15:07

AW: Mixed joins suchen
 
Danke für die Antwort.

Scheinbar geht es so : /(FROM)([^,]*)(,)([^]*)(JOIN)/igm

Zumindest mit https://regexr.com/

Geht doch noch nicht ganz. Wenn ich mehrere Queries habe (was ja die idee ist), dann findet er einen match vom ersten FROM bis zum letzten JOIN anstatt vom FROM bis zum nächsten JOIN

jobo 23. Sep 2017 08:32

AW: Mixed joins suchen
 
Kommt drauf an, was da betroffen ist, reine SQL Scripte, in Delphi Code fließend.
Ein ; o.ä. excluden...

SProske 23. Sep 2017 09:32

AW: Mixed joins suchen
 
Versuchs doch mal mit
Code:
(FROM)((?!JOIN)[^,])*(,)((?!JOIN)[^,])*(JOIN)
Die Herangehensweise dazu nennt sich Tempered Greedy Token, falls du dich belesen willst.

MyRealName 23. Sep 2017 17:25

AW: Mixed joins suchen
 
ok, ich konnte es in meinen SPs auf 9 stored procs, die der RegEx runterziehen und die waren ok. Von daher bin ich soweit zufrieden, dass ich nicht alles händisch durchsuchen musste. Das nächste wird ein directoryscanner sein, den ich schrieben muss um im Code und in den Komponenten properties danach suche.

Danke für die Hilfe an alle :)

jobo 24. Sep 2017 22:27

AW: Mixed joins suchen
 
Zitat:

Zitat von MyRealName (Beitrag 1381896)
.. soweit zufrieden, dass ich nicht alles händisch durchsuchen musste. Das nächste wird ein directoryscanner sein, den ich schrieben muss um im Code und in den Komponenten properties danach suche.

Wie wär es mit einem Editor, der Dateien per regex durchsucht? Mglw sogar per Delph IDE?

Außerdem:
Bei einer konsequenten Verwendung von Views kann man sich solche Aktionen weitgehend ersparen.

MyRealName 25. Sep 2017 14:43

AW: Mixed joins suchen
 
Der code ist geerbt. Der kam schon so :)

Aber neu war mir, dass man direkt in Delphi mit RegEx suchen kann im Find DIalog, ist mir nie aufgefallen. Allerdings habe ich bisher auch nie RegEx benutzt. Ich denke mal, dass ich soweit alles gefunden habe und das ein paar Wochen schneller als gedacht ;)

Danke nochmal.


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