Logwerte von gelöschter Variable auf neue Variable übertragen

Hallo Zusammen,
Heute habe ich eine Variable gelöscht und durch eine neue Variable ersetzt.
Erst später viel mir dann ein, dass ich die Logwerte ebenfalls auf die neue Variable übertragen möchte.

Im Modul „Archive Control“ wird die gelöschte Variable logischerweise als „Objekt #12345 existiert nicht“ aufgelistet.
Wenn ich nun auf VariablenId ändern klicke und die Logwerte auf eine neue Variable zuordnet will, erscheint zuerst der Dialog „Bitte wählen Sie eine neue Variable zu der…“ und dann folgende Fehlermeldung:
Archive-Contorl - Logwerte von gelöschter Variable.png

Wie kann ich die geloggeten Werte auf meine neue Variable übertragen?
Oder handelt es sich hier um einen kleinen Bug vom Archive Control?

Ist deine Datenbank denn in Ordnung? Magst du die mal prüfen? (http://www.ip-symcon.de/service/dokumentation/modulreferenz/archive-control/datenbankwiederherstellung/)

paresy

Hallo paresy,
ich habe die Fehlerüberprüfung durchgeführt.
Rückgabe: ok

IPS wieder gestartet, jedoch erhalte ich immer noch die obige Fehlermeldung.

Hallo,
irgendwelche Vorschläge?
An der angezeigten Fehlermeldung hat sich leider noch nichts verändert.

Kann man per selbst geschriebenem Skript die Logwerte auf eine andere Variable übertragen?
Mittlerweile hat die neue Variable natürlich auch schon Logwerte…

Kann man Logwerte von zwei Variablen mergen?

ich meine mich zu erinnern, das die neue Variable noch keine Logwerte haben darf.

Das ist mir schon klar. Wird auch vor der Variablenauswahl angezeigt.
Jedoch komme ich mit der Fehlermeldung gar nicht zur Ziel-Variablenauswahl…

Falls jemand ein ähnliches Problem hat, hier die Lösung:

  • Backup der logging.db erstellen!
  • per CMD „sqlite3.exe logging.db“ starten
  • Die Tabellennamen sind abhängig vom Datentyp der Variable!
  • Beispielsweise heißen die boolean Tabellen: ips_boolean, ips_boolean_day, ips_boolean_hour, ips_boolean_month, ips_boolean_week, ips_boolean_year
  • Jetzt je Tabelle folgendes ausführen: UPDATE <TABLE> SET varid=<ID-neu> WHERE varid=<ID-alt>;
  • .quit
  • IPS wieder starten
  • Fertig!

@paresy:
Warum kam von dir nicht dieser Vorschlag?

Ich hatte das Problem hier noch offen, um zu überprüfen, warum die Fehlermeldung auftritt.

Deine Lösung ist natürlich für „Kenner“ eine gute Alternative. Prinzipiell machen wir intern nichts anderes :slight_smile:

paresy

Ich hatte heute dieselben Probleme/Symptome. Neue Variable war definitiv noch nicht gelogged. Sieht für mich eher nach einem Bug aus. Die Datenbank war nicht korrupt.
Beste Grüße
hoep

Den habe ich gefühlt vor 2 Monaten im Betabereich gemeldet :wink:

http://www.ip-symcon.de/forum/threads/24896-3445-Problem-beim-verschieben-von-Datensätzen-im-AH-auf-neue-Variable

Folglich war es vor 1,5 Monate im Stable. Wie so oft… :frowning: