Mal'n Gedanke zu Base und Macros

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

Bubi Meier
Beiträge: 8
Registriert: So, 28.10.2007 03:29

Mal'n Gedanke zu Base und Macros

Beitrag von Bubi Meier »

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
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Mal'n Gedanke zu Base und Macros

Beitrag von komma4 »

Gut getippt:
Im SDK siehst Du, dass ResultSet ein "included service" von RowSet ist.

Letzter Satz der Beschreibung:
service com.sun.star.sdbc.RowSet hat geschrieben:On the other hand, a rowset can be used to implement capabilties for a result set, which are not supported by a driver result set, like caching strategies or update capabilities.
[Hervorhebung durch mich]

Viel Spass beim Lesen :-)
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Bubi Meier
Beiträge: 8
Registriert: So, 28.10.2007 03:29

Re: Mal'n Gedanke zu Base und Macros

Beitrag von Bubi Meier »

[quote="komma4"]Gut getippt:
Im SDK siehst Du, dass ResultSet ein "included service" von RowSet ist.

[...]

Naja, wie auch immer. RowSet hat also ResultSet 'geerbt'. Merkwürdig ist allerdings, dass das Erzeugen des ResultSets scheinbar nicht mit den Eigenschaften UPDATEABLE zu bewerkstelligen ist. Bei einem RowSet klappt das hingegen. Der Effekt ist hier bei mir auf WindowsXp genauso wie unter SuseLinux 10.1 festzustellen.

Hat hier überhaupt schon mal jemand sowas erfolgreich gemacht? Also klappt bei irgendjemandem das Erstellen von ResultSets mit ResultSetConcurrency = UPDATEABLE, oder ist das aus irgendeinem Grund so eine 'Legende', die in den entsprechenden Foren oder Büchern immer wieder 'abgeschrieben' wird?

bm
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Mal'n Gedanke zu Base und Macros

Beitrag von komma4 »

Bubi Meier hat geschrieben:Merkwürdig ist allerdings, dass das Erzeugen des ResultSets scheinbar nicht mit den Eigenschaften UPDATEABLE zu bewerkstelligen ist.
"Mein Sohn",
lese nochmal den zitierten Satz der Beschreibung.

"UPDATEABLE is not supported by Resultset"

Merke: ist so vorgesehen. Zum update ein RowSet verwenden.
Bubi Meier hat geschrieben:ResultSets mit ResultSetConcurrency = UPDATEABLE
Wenn es solche Stellen gibt, dann sind sie falsch (abgeschrieben).
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Bubi Meier
Beiträge: 8
Registriert: So, 28.10.2007 03:29

Re: Mal'n Gedanke zu Base und Macros

Beitrag von Bubi Meier »

komma4 hat geschrieben:"Mein Sohn",lese nochmal den zitierten Satz der Beschreibung.

"UPDATEABLE is not supported by Resultset"

Merke: ist so vorgesehen. Zum update ein RowSet verwenden.

Wenn es solche Stellen gibt, dann sind sie falsch (abgeschrieben).
"Mein Vater",

du hast recht, ich ahnte aus dem Zitat der SDK auch schon diese Konsequenz, allerdings fand ich mich zu unwürdig, dies so in dieser Klarheit auch zu formulieren.

Ich komme nun nicht umhin darauf hinzuweisen, dass in einem 'berühmten' Buch, welches in diesem Forum oft, man munkelt vom Autor, empfohlen wird, das Kapitel 8.3.3 nach deiner Erkenntniss komplett 'abgeschrieben' ist. Ich brauche nun wohl nicht darauf hinzuweisen, dass auch ich mir dieses Buch für 39,99 € gekauft habe. Daher mein anfängliches Zögern beim Anzweifeln dieser Erkenntniss.

Wie dem auch sei, Danke für den Hinweis. Man sollte nicht alles glauben, was in Büchern steht.

-bm
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Mal'n Gedanke zu Base und Macros

Beitrag von komma4 »

Bubi Meier hat geschrieben:"Mein Vater"
bei DEM Benutzernamen konnte ich mir die Anrede nicht verkneifen.
Ich hoffe natürlich, dass Du Deinen Vater kennst und ich nicht in Verdacht gerate.

Das Buch kenne ich nicht - und ich gestehe auch einem Autor zu sich mal zu vertun. Ist ärgerlich, wenn man danach programmiert, aber manchmal nicht zu vermeiden.


Jetzt aber ins Bett!
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Antworten