Globale Funktionen nach Tabellenentfernung leer
Hallo zusammen,
ich habe eine recht umfangreiche Datenbank. Mein Wissen ist mit der Datenbank gewachsen, so dass sich im Nachhinein manches Optimierungspotential zeigt. Im Zuge dessen habe ich vor Kurzem Tabellen aufgeräumt und gelöscht, also nicht nur Datensätze, sondern tatsächlich die Tabellen.
Sollte hierbei ein Bezug in Skripten entfallen, werden diese im Admin-Modus mit einem Warnsymbol versehen, so dass man sie durcharbeiten und korrigieren kann. In der Zwischenzeit funktionieren die nicht davon betroffenen Skripte aber weiter. Soweit so gut.
Nicht so funktioniert es aber mit den globalen Funktionen! Hier wurde das gesamte Feld durch eine Fehlermeldung ersetzt, eine Reparatur ist also nicht möglich.
Meine Lösung war, dass ich die Skripte aus einem Backup eingefügt habe und dann im Editor die fehlenden Skripte korrigierte.
Gibt es hier einen anderen Weg? Ist das vielleicht eine Programmanpassung wert?
2 Antworten
-
Hallo,
ha, ein Leidensgenosse. Wenn ich heute meine alten Tabellen und Skripte sehe möchte ich da auch mal durchwühlen. Allerdings habe ich zu viel Respekt vor dem alten Leitspruch „never change a runnig system“.
Wenn ich es dann doch mal tue, lösche ich die Tabellen, Felder oder Funktionen nicht sondern benenne sie um (zb Tabelle_ALT). Dann funktioniert das ganze allerdings mit dem Skript ausbessern nur bedingt.
Das Problem mit der Fehlermeldung hatte ich auch schon. Allerdings habe ich dabei an den Funktionen gearbeitet. In der Regel meckert Ninox ja wenn es einen Fehler findet und das Skript lässt sich nicht speichern. Anscheinend habe ich aber wohl irgend einen Fehler eingebaut, den Ninox nicht erkannt hat und hat mich speichern lassen.
Was hab ich dumm geschaut. Eine Stunde Arbeit weg. Seither kopiere ich vor dem speichern immer alles in die Zwischenablage.
Wie du schon schreibst, wächst das Wissen mit der Zeit. Ich habe definitiv gelernt bei Ninox auf der Hut zu sein.
Ich habe es dem Support damals nicht gemeldet, da es unmöglich war das ganze zu rekonstruieren (und weil ich die Schnauze voll hatte :) aber vielleicht lässt sich der Fehler ja bei dir nachstellen?
Liebe Grüße
-
In den meisten Fällen klappt das. Skripte außerhalb der globalen zeigen zwar einen Fehler innerhalb des Skipts an, aber der Rest läuft problemlos. Außerdem kann man Skripte öffnen und dann korrigeren.
Nachstellen ist einfach, habe es in einer Testdatenbank gemacht:
- Anlage Tabelle1
- Globale Funktion: function test() do if count(Tabelle1) > 0 then null end end
- Löschen Tabelle1
- Fehler wir oben beschrieben, kein Zugriff auf bestehende Globale Funktionen mehr möglich.
Content aside
- vor 6 MonatenZuletzt aktiv
- 2Antworten
- 39Ansichten
-
2
Folge bereits