Der EA stellt eine Standardsuche zur Verfügung um verwaiste Elemente zu finden:
Diese Suche findet alle Elemente, die Im Modell (Project Browser) vorhanden sind, aber in keinem Diagramm verwendet (referenziert) werden!
Ist das Element durch Links mit anderen Elementen verbunden,
ist das Element der Typ eines Attributes, Parameters oder ein Return-Typ einer Operation,
ist das Element der Typ einer Instanz, eines Ports, etc., wird es ebenfalls als „orphan“ (verwaist) ausgegeben.
Will man nun wirklich nur jene Elemente, die vollkommen verwaist sind, ist dies mit dem Query-Builder nicht möglich.
Eine SQL-Suche bringt Abhilfe.
Die Suche für oben angeführtes Problem sieht folgendermaßen aus:
Die oben dargestellte Such wurde erweitert und sucht nun auch ob ein Element mit einer Operation, Informationsfluss, Trigger, etc verlinkt ist. Durch eine stärkere Einschränkung in den Sub-Selects wir auch die Performanz verbessert.
Die Suche für .EAP-Files (MSJet Datenbanken) kann hier als .txt heruntergeladen werden. Eine Version für MSSQL ist hier erhältlich.
Die Tabellen t_attribute, t_operation, t_operationparams speichern das Attribut Classifier als Text und nicht als Zahl, daher muss die Classifier ID, z.B. „12“ .
Für diese Abfrage wurden DB spezifische Umformungen verwendet. Für die MSJet DB sind es folgende:
CInt ( t_attribute.Classifier) … konvertiert einen String in einen Integer!
CInt ( „0“ & t_attribute.Classifier) … stellt sicher, dass eine Zahl und nicht NULL konvertiert wird! Wenn in der Tabelle t_attribute.Classifier kein Wert eingetragen ist, wird NULL zurück geliefert. Dies führt zu einem Fehler!
Durch Hinzufügen folgender Zeile kann die Suche auf bestimmte Elementtypen eingeschränkt werden:
Für MSJet DB: AND t_object.Object_Type LIKE ‚*‘ & ‚<SearchTerm>‘ & ‚*‘
Für MSSQL DB: AND t_object.Object_Type LIKE ‚%’+'<SearchTerm>‘ +’%‘
Wenn ich diese SQL-Query ausführen möchte, erhalte ich die Fehlermeldung:
DAO.QueryDef[3141]
The SELECT statemet includes a reserved word or an argument name that is
misspelled or missing, or th punctuation is incorrect.
(Ausgeführt in EA 9.0 Beta)
Wenn dieser Fehler auftritt haben sie die falschen Anführungszeichen im SQL-Statement verwendet. Passiert beim kopieren des SQL-Statements aus dem Artikel (hier sind das typografische Anführungszeichen)
Die SQL Suche wurde überarbeitet und kann als .txt heruntergeladen werden.
I got this failure:
Microsoft OLE DB Provider for SQL server [-2147217900]
‚cLng‘ is not recognized built-in function name.
what can i do?
Hi, I am sorry, but the provided query is dedicated to MS-Jet DBs it doesn’t work with other DBMS.
However, to cope with this you have to change the DB specific calls like „cLng“ with that one your DB provides.
I will try to provide further DB specific queries.