AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi View Referenzen anzeigen / suchen
Thema durchsuchen
Ansicht
Themen-Optionen

View Referenzen anzeigen / suchen

Ein Thema von haentschman · begonnen am 17. Mär 2022 · letzter Beitrag vom 6. Apr 2022
Antwort Antwort
Redeemer

Registriert seit: 19. Jan 2009
Ort: Kirchlinteln (LK Verden)
1.140 Beiträge
 
Delphi 2009 Professional
 
#1

AW: View Referenzen anzeigen / suchen

  Alt 17. Mär 2022, 21:59
Also ich hab das Problem mit 2019.
Auf die Idee, einfach alle Views einer Datenbank zu Öffnen und zu Speichern und das zu automatisieren, bin ich noch nicht gekommen.
Man müsste auch noch gucken, ob das Problem bei Objekten des Typs Programmierbarkeit auch passiert. Sonst könnt man statt eines Views einfach eine „Tabellenwertfunktion mit einer Anweisung“ nehmen.

(Weniger) lustig ist übrigens auch, dass SSMS den Originalquelltext beim Speichern scheinbar möglichst hässlich und unleserlich macht, indem es wahllos Absätze, Einrückung, Klammern und optionale reservierte Wörter wie „AS“ einfügt, „SELECT *“ auflöst, aber wiederum andere Klammern und alle Kommentare löscht. Meines Wissens ist das nicht abschaltbar. Das ist aber kein Bug Feature von MSSQL sondern von SSMS und passiert erst nach dem Speichern und nach dem Öffnen. Den Originalquelltext des Views kann man – manchmal – in Heidi angucken. Wenn Heidi denn funktioniert. Wenn es nicht gerade ums Einfügen, Ändern und Löschen von Daten geht (dann aber bitte keine Bits im PK), ist auf Heidi bei MSSQL leider kein Verlass. Wenn Heidi eine View-Definition anzeigen kann (und nicht nur ein leeres Eingabefeld zeigt), sind da immer mehrere Absätze am Anfang des Quelltextes, aber das stört ja nicht. Ich frag mich bloß immer, wie die da reinkommen.
Janni
2005 PE, 2009 PA, XE2 PA

Geändert von Redeemer (17. Mär 2022 um 22:01 Uhr)
  Mit Zitat antworten Zitat
Redeemer

Registriert seit: 19. Jan 2009
Ort: Kirchlinteln (LK Verden)
1.140 Beiträge
 
Delphi 2009 Professional
 
#2

AW: View Referenzen anzeigen / suchen

  Alt 6. Apr 2022, 10:23
Also ich hab das Problem mit 2019.
Auf die Idee, einfach alle Views einer Datenbank zu Öffnen und zu Speichern und das zu automatisieren, bin ich noch nicht gekommen.
Vermutlich kann man es wohl einfach so machen:
Code:
SELECT MODS.DEFINITION FROM SYS.OBJECTS OBJ
JOIN SYS.SQL_MODULES MODS ON OBJ.[OBJECT_ID]=MODS.[OBJECT_ID]
/* JOIN SYS.SCHEMAS SCHS ON OBJ.SCHEMA_ID=SCHS.SCHEMA_ID */ -- nur nötig, sollte man nach Schema filtern wollen: SCHS[.NAME]='dbo'
WHERE OBJ.TYPE='V'
AND MODS.DEFINITION IS NOT NULL /* rausfiltern, wo das Recht SHOW VIEW fehlt */
Dann ersetzt man in jedem Ergebnis das erste CREATE , was kein Kommentar ist, durch ALTER und führt das Ergebnis als Befehl aus. Oder sehe ich da was falsch?

Den Originalquelltext des Views kann man – manchmal – in Heidi angucken. Wenn Heidi denn funktioniert.
Lag an meinen Rechten.
Janni
2005 PE, 2009 PA, XE2 PA
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#3

AW: View Referenzen anzeigen / suchen

  Alt 6. Apr 2022, 17:15
Bei Oracle war/ist es eigentlich auch so. Wenn man das DM ändert (natürlich auch views), gehen abhängige Objekte u.U. "kaputt" (invalid). Aber es läuft gleichzeitig ein Mechanismus, der sie wieder heilt, spätestens wenn man in aufruft oder wenn man die Objekte (die kaputt sind) explizit "recompiled". Funktioniert eigentlich fast geräuschlos, außer bei komplexeren Modellen.
Für Views habe ich mir deshalb angewöhnt, die Sourcen in einer einzigen Quelldatei zu verwalten, die man notfalls immer durchjagen kann. Ist nur bei Selbstreferenzen manchmal nicht erfolgreich. Dann am besten einzelne Objekte recompilieren.

Das ist am Ende ziemlich ähnlich zu dem Ansatz, den Du mit Deinem SQL Statement zu Fuß machst.
Gruß, Jo
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:14 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-2025 by Thomas Breitkreuz