Guten Tag, meine Damen und Herren
Ich ringe nun schon seit etwa zwei Tagen mit einem Problem, das hier scheinbar schon öfters diskutiert wurde. Es handelt sich um das Erstellen eines
ResultSets aus einem
DataSource, das dann UPDATEABLE bzw. SCROLL_SENSITIVE sein soll. So beispielsweise in
viewtopic.php?f=18&t=3181&p=12614&hilit ... ncy#p12614
viewtopic.php?f=18&t=12408&p=49372&hili ... ncy#p49372
viewtopic.php?f=8&t=12349&p=49176&hilit ... ncy#p49147
viewtopic.php?f=8&t=12349&p=49147&hilit ... ncy#p49147
viewtopic.php?f=18&t=6256&p=23708&hilit ... ncy#p23708
zu lesen.
Ich habe die hier beschriebenen Phänomene auch in gleicher Weise erfehren. Ein Schreiben der Eigenschaften
ResultSetConcurrency und
ResultSetType führt nicht zum Erfolg. Merkwürdigerweise sind die Eigenschaften aber auch nicht READONLY, zumindest protestiert die Umgebung beim Schreiben nicht, was sonst bei READONLY Values der Fall, und auch sinnvoll, ist.
Dies stellt sich auf Windowssystemen ebenso wie auf Linuxbasierten System dar. Wenn jemand einen Mac und etwas Zeit hat , kann er ja mal gucken, ob dies auch da so ist.

)
Nun habe ich den 'offiziellen' OpenOffice 2.3 Developers Quide aus dem Hause Sun Microsystems (kann man da runterladen) mal etwas genauer beobachtet.
Wenn man den Datebankzugriff über ein 'RowSet' gestaltet, klappt alles so wie man sich das denkt. Das RowSet Object hat scheinbar viele (womöglich alle) Methoden und Eigenschaften, die ein ResultSet Object auch haben sollte. Womöglich ist ResultSet an RowSet vererbt, oder umgekehrt. Der Unterschied der beiden Objekte ist mir noch nicht ganz klar, vielleicht ist das aber auch nicht nötig.
Ein Beispielcode, den ich auch nur im oben erwähnten Werk abschrub, ist etwa:
[...]
RowSet = createUnoService("com.sun.star.sdb.RowSet")
RowSet.setPropertyValue("DataSourceName", "NatuerlichRad")
RowSet.setPropertyValue("CommandType", com.sun.star.sdb.CommandType.COMMAND)
RowSet.setPropertyValue("Command", "SELECT * FROM ""TKunden"" ""TKunden"" ORDER BY ""Nachname"" ASC")
RowSet.execute()
RowSet.MoveToInsertRow()
RowSet.UpdateString(RowSet.findcolumn("Vorname"), "Sepp")
RowSet.UpdateString(RowSet.findcolumn("Nachname"), "Meier")
RowSet.insertRow()
RowSet.close()
[...]
TKunden ist dabei so beschaffen, wie sich das wahrscheinlich alle denken.
RowSets sind scheinbar per default UPDATEABLE bzw. SCROLL_SENSITIVE.
bm