Warum kann ich die Datensätze nicht ändern

Hallo erstmal an die Gemeinschaft.
Ich habe ein gravierendes Problem mit Version 5.4.
Vor einigen Tagen hatte ich ein Programmabsturz. Nichts ging mehr. Rechner komplett neu gestartet und fataler Weise sind meine Macro Bibliotheken futsch.
Sicherungskopie der Basedatei habe ich, aber an die Makros habe ich überhaupt nicht gedacht. Habe aber zum Glück eine Printversion. Soweit zum Vorlauf.

Einig dringend benötigte Sub’s habe ich natürlich wieder reingehämmert. Aber eingenartiger Weise kann ich mit

oErgSet.updateString(int, "Text") 

die Felder nicht mehr ändern, weil er ständig meckert “READ-ONLY”
Die Uno Konstante UPDATABLE ist gesetzt, aber schaut man sich das Objekt an steht noch immer der Code 1007 (nur lesen).

Kann sich das jemand erklären?

Wie sieht es denn aus, wenn Du ohne Makros direkt in die Tabelle schreibst?

funktioniert einwandfrei

Wie hast Du genau UPDATABLE gesetzt? Müsste sein:

oStatement.ResultSetConcurrency = com.sun.star.sdbc.ResultSetConcurrency.UPDATABLE

Allerdings dürfte auch reichen,

oStatement.ResultSetConcurrency = 1008

zu schreiben.

Exakt so habe ich sie gesetzt. Es ist halt eigenartig das dieser Umstand seit dem Absturz so ist. Und nur im Basic werden die Tabellen als normales Ergebnisset geladen. Formulare und Tabelleneingaben funktionieren halt einwandfrei. Ich bin schon am überlegen komplett neu zu installieren. Allerdings nervt es mich keine Antwort darauf zu finden.
Ich habe das Gefühl als ob sich ein Listener mit eingehängt hat. Die Zeile wird gelesen (Debugmodus) aber einfach ignoriert.

Eine Neuinstallation bringt in der Regel weniger als ein Zurücksetzen der Benutzereinstellungen. Da ist nicht zufällig so etwas drin wie Option Explicit? Die Reihenfolge der Kommandos ist auch gleich der vorhergehenden Reihenfolge? Damit meine ich so etwas wie

oStatement.ResultSetType = 1004

das das Scrollen in den Datensätzen ermöglicht. Vielleicht muss ja die Anweisung für die ResultSetConcurrency immer am Angang stehen, sobald Du oStatement definiert hast.

Oh man, zu blöd. Ich habe den Fehler gefunden…

Immer gut, den Fehler auch zu verraten. Damit andere nicht in die gleiche Falle tapsen.

Natürlich, da hast du recht. :wink:
Ich habe ein ResultSet erzeugt statt eines RowSets. Die Problematik ist auch in “Krumbein’s” Büchern beschrieben. Ich hätte es früher mal wieder rauskramen sollen bevor ich drei Tage lang in den Objekten rumgestöbert habe.
Meine Printversion war wohl doch schon ein wenig älter. Jetzt aber erstmal die Bibliotheken sichern.

Danke noch mal für deine Bemühungen.