Wednesday, March 19, 2008

Aus dem Leben eines Kammerjägers

Manchmal sucht man Bugs ganz einfach an der falschen Stelle - und manchmal nur, weil die Fehlermeldung nicht wirklich aussagekräftig ist. Ich habe die jetzt ziemlich genau einen ganzen Tag nach einem Bug gesucht und die Lösung war so einfach.

Ich verwende bei der Entwicklung ganz gerne SQLite, vor allem weil das Anlegen und Ändern von Tabellen in der MaxDB über SAP R/3 nicht so simpel ist, wenn man keinen "Entwicklerschlüssel" hat. Also immer erst ne SQLite-DB anlegen und wenn die Entwicklung soweit fertig ist, einfach die finalen Tabellendefinitionen in die MaxDB transportieren.

Aber zurück zum Bug: Ich habe die Fehlermeldung "attempt to write a readonly database(8) at dbdimp.c" bekommen. Also nach der Datei geschaut - Rechte geändert. Jetzt die Fehlermeldung "unable to open database file(14)". Komisch: Der Pfad zur Datenbank ist richtig, die Datei hat die nötigen Rechte gesetzt bekommen... Andere Statements ausprobiert. Die funktionieren...

Bis ich darauf gekommen bin, dass SQLite erst eine "Journal"-Datei anlegt bevor die Änderungen vorgenommen werden. Also muss das Verzeichnis mit der Datenbank die entprechenden Rechte gesetzt haben. Und die Statements die funktionierten waren alle "SELECT"-Statements.

Warum mir der Fehler vorher noch nicht untergekommen war? Zu Hause entwickel ich (fast) alles unter Windows. Da kann die "Journal"-Datei immer angelegt werden und hier habe ich die früheren Datenbanken immer automatisch in ein Verzeichnis mit den Rechten 777 geschoben, also auch kein Problem.

Nur diesmal war ich "zu faul", die Datenbank gleich in das richtige Verzeichnis zu kopieren... Naja, jetzt funktioniert alles.

No comments: