Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Ähnliche Strings erkennen. (https://www.delphipraxis.net/165905-aehnliche-strings-erkennen.html)

Bjoerk 20. Jan 2012 16:36

AW: Ähnliche Strings erkennen.
 
Hallo gibb,

hast du in beiden zu vergleichenden Strings wildcards (* ?) drin? Wäre wichtig zu wissen..

stahli 20. Jan 2012 18:37

AW: Ähnliche Strings erkennen.
 
"Ähnliche Strings erkennen" finde ich als Aufgabenstellung unpassend. Dazu hatten wir mal hier etwas: http://www.delphipraxis.net/154811-v...rozentual.html

Du musst aber Deine Statements ja analysieren und verstehen.
U.U. können 2 Statements funktional völlig identisch sein, obwohl das eine Klammern verwendet und das andere nicht.

Ich denke, Du bist mit Deinem Ansatz im ersten Beitrag auf dem richtigen Weg.
Dabei musst Du die Kriterien nach und nach so erweitern, bis alle Fälle korrekt interpretiert werden.

Furtbichler 21. Jan 2012 08:40

AW: Ähnliche Strings erkennen.
 
Wenn sich das Erkennen auf SELECT-Kommandos bezieht und "eigentlich" nur die WHERE-klausel eine Rolle spielt, sollte das kein Problem sein. Hier im Forum schwirren diverse mehr oder minder gut geschriebene "Mathe-Parser" herum, die -wenn sie gut geschrieben sind- in der Lage sein dürften, den Inputstring entsprechend auseinanderzunehmen.

Vielleicht reicht eine Transformation ja aus, denn Du willst vielleicht auch die Distributivgesetze in der logischen Klausel beachten, dann gilt ja:
"...WHERE A OR B" = "WHERE B OR A"

Bernhard Geyer 21. Jan 2012 12:47

AW: Ähnliche Strings erkennen.
 
Zitat:

Zitat von gibb (Beitrag 1146916)
Ja das hilft mir jetzt aber nicht weiter ;)

ein grossteil meiner sqls sind bereits auf Parameter umgestellt. Eine komplett umstellung ist auf die schnelle nicht möglich.

Zitat:

Zitat von gibb (Beitrag 1146919)
O.ô ich habe wiki gelesen zu diesen 2 Artikel... ich seh noch nicht ganz wie ich damit erkennen soll das es sich tatsächlich um dasselbe statement handelt.

es geht um mehrere 10000 SQL Statements, und wehe bei einem kommt dasselbe resultat...

Ich denke du wirst nicht um (einen beschleunigten) Umbau herumkommen. Jetzt in einen SQL-Parser zu investieren der zu 100% Fehlerfrei sein muss ist ähnlich aufwändig als eine vernünftige DB-Schnittstelle zu definieren die 100% Parametrisiert ist und bei denen du deinen Wildwuchs von 10000 per Format/String-Concation zusammen gebauten SQL-Strings damit ablöst.

Vor allem wie kommt man auf diese große Zahl? Und welcher Grund hat es jetzt diese in realtiv kurzer zeit vergleichbar zu haben?

Furtbichler 21. Jan 2012 13:15

AW: Ähnliche Strings erkennen.
 
Wenn das Problem eingegrenzt werden kann (identische Tabellen, aber ähnliche WHERE-Klauseln) sollte ein 100% funktionierender Parser in 1-3 Tagen umgesetzt sein, schließlich werden hier bekannte Techniken verwendet. Eine Verwendung von CoCo, Lex&Yacc o.ä. wäre sicherlich noch besser. Man muss sich nur leider damit auskennen.

gibb 21. Jan 2012 18:05

AW: Ähnliche Strings erkennen.
 
hallo zusammen,

Es geht nur darum einen Lasttest machen zu können. Dafür logge ich die SQL statements und ersetze den wert mit einer variable die mehrere werte Representieren kann. Da aber häuffig dasselbe sql statements im log vorfinde schreibe ich mir ein Programm welches mir die SQLs automatisch mit den Variablen versieht. Wenn ich es bereits einmal von Hand definiert habe. Ich werde nun also so verfahren wie im ersten Post beschrieben ich denke das ist zu 100% zuverlässig. Nicht gerade schön aber es funktioniert wohl mit dem kleinstmöglichen Aufwand.


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:24 Uhr.
Seite 2 von 2     12   

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