Frage stellen
0

Warum kann ich die Datensätze nicht ändern

gefragt 2018-12-09 11:09:24 +0200

Hobelmaul Gravatar-Bild

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?

Bearbeiten Tags ändern Melden schließen vereinen löschen

Kommentare

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

RobertG Gravatar-BildRobertG ( 2018-12-09 11:35:13 +0200 )Bearbeiten

funktioniert einwandfrei

Hobelmaul Gravatar-BildHobelmaul ( 2018-12-09 11:38:23 +0200 )Bearbeiten

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.

RobertG Gravatar-BildRobertG ( 2018-12-09 14:59:21 +0200 )Bearbeiten

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.

Hobelmaul Gravatar-BildHobelmaul ( 2018-12-09 16:49:43 +0200 )Bearbeiten

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.

RobertG Gravatar-BildRobertG ( 2018-12-09 18:23:07 +0200 )Bearbeiten

1 Antwort

0

geantwortet 2018-12-10 21:28:10 +0200

Hobelmaul Gravatar-Bild

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

Bearbeiten Melden löschen Link mehr

Kommentare

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

RobertG Gravatar-BildRobertG ( 2018-12-10 21:49:57 +0200 )Bearbeiten

Natürlich, da hast du recht. ;-) 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.

Hobelmaul Gravatar-BildHobelmaul ( 2018-12-10 23:48:26 +0200 )Bearbeiten
Registrieren oder einloggen, um zu antworten

Antwortwerkzeuge

1 Beobachter

Statistik

Gefragt: 2018-12-09 11:09:24 +0200

Angesehen: 48 Mal

Aktualisiert: Dec 10 '18